~ chicken-core (chicken-5) 2c3b864bc61cdfe7df265f7ecf2972f36458aa26
commit 2c3b864bc61cdfe7df265f7ecf2972f36458aa26 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Tue Sep 14 19:04:18 2010 +0200 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Tue Sep 14 19:04:18 2010 +0200 make sure sXXvector ops use signed chars (thanks to Peter Bex) diff --git a/chicken.h b/chicken.h index 5830ae3d..c91c4c78 100644 --- a/chicken.h +++ b/chicken.h @@ -1295,7 +1295,7 @@ extern double trunc(double); #define C_u_i_f64vector_length C_u_i_64vector_length #define C_u_i_u8vector_ref(x, i) C_fix(((unsigned char *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ]) -#define C_u_i_s8vector_ref(x, i) C_fix(((char *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ]) +#define C_u_i_s8vector_ref(x, i) C_fix(((signed char *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ]) #define C_u_i_u16vector_ref(x, i) C_fix(((unsigned short *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ]) #define C_u_i_s16vector_ref(x, i) C_fix(((short *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ]) #define C_u_i_u32vector_ref(x, i) C_fix(((C_u32 *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ]) @@ -1304,7 +1304,7 @@ extern double trunc(double); #define C_a_i_s32vector_ref(ptr, c, x, i) C_int_to_num(ptr, ((C_s32 *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ]) #define C_u_i_u8vector_set(x, i, v) ((((unsigned char *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ] = C_unfix(v)), C_SCHEME_UNDEFINED) -#define C_u_i_s8vector_set(x, i, v) ((((char *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ] = C_unfix(v)), C_SCHEME_UNDEFINED) +#define C_u_i_s8vector_set(x, i, v) ((((signed char *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ] = C_unfix(v)), C_SCHEME_UNDEFINED) #define C_u_i_u16vector_set(x, i, v) ((((unsigned short *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ] = C_unfix(v)), C_SCHEME_UNDEFINED) #define C_u_i_s16vector_set(x, i, v) ((((short *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ] = C_unfix(v)), C_SCHEME_UNDEFINED) #define C_u_i_u32vector_set(x, i, v) ((((C_u32 *)C_data_pointer(C_block_item((x), 1)))[ C_unfix(i) ] = C_num_to_unsigned_int(v)), C_SCHEME_UNDEFINED) @@ -1313,7 +1313,7 @@ extern double trunc(double); #define C_u_i_bit_setp(x, i) C_mk_bool((C_unfix(x) & (1 << C_unfix(i))) != 0) #define C_u_i_pointer_u8_ref(ptr) C_fix(*((unsigned char *)C_block_item(ptr, 0))) -#define C_u_i_pointer_s8_ref(ptr) C_fix(*((char *)C_block_item(ptr, 0))) +#define C_u_i_pointer_s8_ref(ptr) C_fix(*((signed char *)C_block_item(ptr, 0))) #define C_u_i_pointer_u16_ref(ptr) C_fix(*((unsigned short *)C_block_item(ptr, 0))) #define C_u_i_pointer_s16_ref(ptr) C_fix(*((short *)C_block_item(ptr, 0))) #define C_a_u_i_pointer_u32_ref(ap, n, ptr) \ @@ -1325,7 +1325,7 @@ extern double trunc(double); #define C_u_i_pointer_u8_set(ptr, x) \ (*((unsigned char *)C_block_item(ptr, 0)) = C_unfix(x), C_SCHEME_UNDEFINED) #define C_u_i_pointer_s8_set(ptr, x) \ - (*((char *)C_block_item(ptr, 0)) = C_unfix(x), C_SCHEME_UNDEFINED) + (*((signed char *)C_block_item(ptr, 0)) = C_unfix(x), C_SCHEME_UNDEFINED) #define C_u_i_pointer_u16_set(ptr, x) \ (*((unsigned short *)C_block_item(ptr, 0)) = C_unfix(x), C_SCHEME_UNDEFINED) #define C_u_i_pointer_s16_set(ptr, x) \Trap