=?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