Subject Re: [ib-support] Current status of the bugs around isc4.gdb on fb1.0.2
Author Mark O'Donohue
Y.Shimmura wrote:

> Hi,
>
> Please tell me.
>
> Some strange situation of the Firebird 1.0.2 installation ...
>
> - isc4.gdb won't be converted.
> - 3rd party tools can't access to the new isc4.gdb.
>
> How about these issues ? ( Still opened ? )

Still open, I had a quick look before I went away.

A rebuild from source on my system of fb.1.0.2 did *not* seem to have
the problem.

But install from fb1.0.2 distribution did.

So it may be to do with gcc library versions, interpreting the code
changes differnetly (Paul (Reeves), do you mind telling us what system
was used to build 1.0.2).



From the diff's I did on the code, the two changes I can see that
*might* affect the problem, but did not get time to look fully at were:

1. change to // parsing for db name (as attached)

2. change the typecasting of a stdard returns to an (int) from a few
which said (byte), as attached but like:


case dtype_byte: /* byte */
- ch = va_arg (ptr, SCHAR);
+ /* ch = va_arg (ptr, SCHAR); */
+ ch = (SCHAR) va_arg (ptr, int);

(the new code is correct, the old is an error - but a compiler can be
wrong too, and this fits our error profile nicely)



Monday is the most recent I can look at it again, unfortunately Im
fairly busy at the moment.




>
> Should I wait for the patches ?


Yes,

>
> ( I hope to keep on using 3rd party tools. ex.IBAdmin)

So do we!


Cheers

Mark

----------

Index: interbase/jrd/isc_file.c
diff -u interbase/jrd/isc_file.c:1.7 interbase/jrd/isc_file.c:1.13
--- interbase/jrd/isc_file.c:1.7 Mon Dec 17 00:51:09 2001
+++ interbase/jrd/isc_file.c Wed Nov 13 06:27:23 2002
+ /* skip dual // (will collapse /// to / as well) */
+ if (*from == '/' && from[1] == '/')
+ {
+ ++from;
+ continue;
+ }
+
/* Copy the leading slash, if any */
Index: interbase/jrd/misc.c
diff -u interbase/jrd/misc.c:1.1.1.1 interbase/jrd/misc.c:1.2
--- interbase/jrd/misc.c:1.1.1.1 Thu Aug 3 13:50:58 2000
+++ interbase/jrd/misc.c Tue Jul 2 11:32:39 2002
@@ -73,16 +73,19 @@
pop the arguments off the call stack and put
them into the passed buffer */

-while (arg_type = va_arg (ptr, SCHAR))
+/* while (arg_type = va_arg (ptr, SCHAR)) */
+while (arg_type = (SCHAR) va_arg (ptr, int))
switch (arg_type)
{
case dtype_byte: /* byte */
- ch = va_arg (ptr, SCHAR);
+ /* ch = va_arg (ptr, SCHAR); */
+ ch = (SCHAR) va_arg (ptr, int);
STUFF (p, ch);
break;

case dtype_short: /* short value */
- sh = va_arg (ptr, USHORT);
+ /* sh = va_arg (ptr, USHORT); */
+ sh = (USHORT) va_arg (ptr, int);
STUFF_SHORT (p, sh);
break;

@@ -97,7 +100,8 @@
break;

case dtype_varying: /* short value followed by a value with that many bytes */
- sh = va_arg (ptr, USHORT);
+ /* sh = va_arg (ptr, USHORT); */
+ sh = (USHORT) va_arg (ptr, int);
STUFF_SHORT (p, sh);
q = va_arg (ptr, UCHAR*);
STUFF_BYTES (p, q, sh);
Index: interbase/jrd/msgs.h


[Non-text portions of this message have been removed]