=?iso-8859-1?q?=5Bsisyphus=5D_Re=3A_FireBird_1=2E0_=CF=D4_AltLinux_=C2=D5?= =?iso-8859-1?q?=C4=C5=D4=3F?=

Evgeniy Kobzev =?iso-8859-1?q?evgenik_=CE=C1_diamonds=2Eru?=
Пт Мар 15 08:46:48 MSK 2002


----- Original Message -----
From: "Mikhail Zabaluev" <mhz на alt-linux.org>
To: <sisyphus на altlinux.ru>
Sent: Friday, March 15, 2002 1:14 AM
Subject: [sisyphus] Re: FireBird 1.0 от AltLinux будет?


> Хм, сомнительный код... Не означаёт ли это, что ошибки загнаны под
> ковёр? Можно взглянуть на код, на котором выдаются ошибки?

Можно. Функция в которой ругается. Это 47 строка, и далее до 110.
=====================================================================
SSHORT MISC_build_parameters_block (
    UCHAR *buffer,
    ...)
{
/**************************************
 *
 * M I S C _ b u i l d _ p a r a m e t e r s _ b l o c k
 *
 **************************************
 *
 * Functional description
 * Stuffs the passed buffer with various argument information coming via
 * va_list.  An argument type of 0 signifies the end of argument list.
 * Returns the total number of bytes put (stuffed) in the passed buffer.
 *
 **************************************/
va_list ptr;
UCHAR *p, *q;
SCHAR arg_type, ch;
USHORT sh;
SLONG l;

p = buffer;
VA_START (ptr, buffer);

/* using the argument types in the parameter list,
   pop the arguments off the call stack and put
   them into the passed buffer */

while (arg_type = va_arg (ptr, SCHAR)) // <--- misc.c:76: `SCHAR' is
promoted to `int' when passed through `...'
    switch (arg_type)
 {
 case dtype_byte: /* byte */
     ch = va_arg (ptr, SCHAR);         // <--- misc.c:80: `SCHAR' is
promoted to `int' when passed through `...'
     STUFF (p, ch);
     break;

 case dtype_short: /* short value */
     sh = va_arg (ptr, USHORT);        // <--- misc.c:85: `USHORT' is
promoted to `int' when passed through `...'
     STUFF_SHORT (p, sh);
     break;

 case dtype_long: /* long value */
     l = (SLONG) va_arg (ptr, SLONG);
     STUFF_LONG (p, l);
     break;

 case dtype_cstring: /* null-terminated string */
     q = va_arg (ptr, UCHAR*);
     STUFF_BYTES (p, q, strlen (q) + 1);
     break;

 case dtype_varying: /* short value followed by a value with that many bytes
*/
     sh = va_arg (ptr, USHORT);
     STUFF_SHORT (p, sh);
     q = va_arg (ptr, UCHAR*);
     STUFF_BYTES (p, q, sh);
     break;
 }

va_end (ptr);

return (p-buffer);
}
=====================================================================







Подробная информация о списке рассылки Sisyphus