Fixed bug due to the fact that byte_vector_ref returns a signed char.

This commit is contained in:
marting 2000-08-28 13:02:09 +00:00
parent 82f8195911
commit 5cca147350
1 changed files with 6 additions and 6 deletions

View File

@ -28,7 +28,7 @@
#define SET_LONG(x,n,v) GET_LONG((x),(n))=(u_long)(v);
s48_value long2byte_vector (long number)
s48_value long2byte_vector (u_long number)
{
s48_value bv = s48_make_byte_vector (4, 0);
S48_BYTE_VECTOR_SET(bv, 0, number & 0xff);
@ -38,12 +38,12 @@ s48_value long2byte_vector (long number)
return bv;
}
long byte_vector2long (s48_value bv)
u_long byte_vector2long (s48_value bv)
{
long number = S48_BYTE_VECTOR_REF (bv, 0);
number |= (S48_BYTE_VECTOR_REF (bv, 1) << 8);
number |= (S48_BYTE_VECTOR_REF (bv, 2) << 16);
number |= (S48_BYTE_VECTOR_REF (bv, 3) << 24);
u_long number = (u_char) S48_BYTE_VECTOR_REF (bv, 0);
number |= (((u_char) S48_BYTE_VECTOR_REF (bv, 1)) << 8);
number |= (((u_char) S48_BYTE_VECTOR_REF (bv, 2)) << 16);
number |= (((u_char) S48_BYTE_VECTOR_REF (bv, 3)) << 24);
return number;
}