Fixed bug due to the fact that byte_vector_ref returns a signed char.
This commit is contained in:
parent
82f8195911
commit
5cca147350
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue