[ctypes-commit] ctypes/source cfield.c,1.117.2.5,1.117.2.6
Brought to you by:
theller
From: Thomas H. <th...@us...> - 2006-03-19 11:06:21
|
Update of /cvsroot/ctypes/ctypes/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15067/source Modified Files: Tag: unaligned_branch cfield.c Log Message: unaligned acces works on sparc solaris now Index: cfield.c =================================================================== RCS file: /cvsroot/ctypes/ctypes/source/cfield.c,v retrieving revision 1.117.2.5 retrieving revision 1.117.2.6 diff -C2 -d -r1.117.2.5 -r1.117.2.6 *** cfield.c 18 Mar 2006 19:34:29 -0000 1.117.2.5 --- cfield.c 19 Mar 2006 11:06:15 -0000 1.117.2.6 *************** *** 554,560 **** if (get_long(value, &val) < 0) return NULL; ! field = SWAP_2(*(short *)ptr); field = SET(field, (short)val, size); ! *(short *)ptr = SWAP_2(field); _RET(value); } --- 554,562 ---- if (get_long(value, &val) < 0) return NULL; ! memcpy(&field, ptr, sizeof(field)); ! field = SWAP_2(field); field = SET(field, (short)val, size); ! field = SWAP_2(field); ! memcpy(ptr, &field, sizeof(field)); _RET(value); } *************** *** 563,569 **** h_get(void *ptr, unsigned size) { ! short val = *(short *)ptr; GET_BITFIELD(val, size); ! return PyInt_FromLong(val); } --- 565,572 ---- h_get(void *ptr, unsigned size) { ! short val; ! memcpy(&val, ptr, sizeof(val)); GET_BITFIELD(val, size); ! return PyInt_FromLong((long)val); } *************** *** 571,575 **** h_get_sw(void *ptr, unsigned size) { ! short val = *(short *)ptr; val = SWAP_2(val); GET_BITFIELD(val, size); --- 574,579 ---- h_get_sw(void *ptr, unsigned size) { ! short val; ! memcpy(&val, ptr, sizeof(val)); val = SWAP_2(val); GET_BITFIELD(val, size); *************** *** 597,603 **** if (get_ulong(value, &val) < 0) return NULL; ! field = SWAP_2(*(unsigned short *)ptr); field = SET(field, (unsigned short)val, size); ! *(unsigned short *)ptr = SWAP_2(field); _RET(value); } --- 601,609 ---- if (get_ulong(value, &val) < 0) return NULL; ! memcpy(&field, ptr, sizeof(field)); ! field = SWAP_2(field); field = SET(field, (unsigned short)val, size); ! field = SWAP_2(field); ! memcpy(ptr, &field, sizeof(field)); _RET(value); } *************** *** 607,611 **** H_get(void *ptr, unsigned size) { ! unsigned short val = *(unsigned short *)ptr; GET_BITFIELD(val, size); return PyInt_FromLong(val); --- 613,618 ---- H_get(void *ptr, unsigned size) { ! unsigned short val; ! memcpy(&val, ptr, sizeof(val)); GET_BITFIELD(val, size); return PyInt_FromLong(val); *************** *** 615,619 **** H_get_sw(void *ptr, unsigned size) { ! unsigned short val = *(unsigned short *)ptr; val = SWAP_2(val); GET_BITFIELD(val, size); --- 622,627 ---- H_get_sw(void *ptr, unsigned size) { ! unsigned short val; ! memcpy(&val, ptr, sizeof(val)); val = SWAP_2(val); GET_BITFIELD(val, size); *************** *** 641,647 **** if (get_long(value, &val) < 0) return NULL; ! field = SWAP_INT(*(int *)ptr); field = SET(field, (int)val, size); ! *(int *)ptr = SWAP_INT(field); _RET(value); } --- 649,657 ---- if (get_long(value, &val) < 0) return NULL; ! memcpy(&field, ptr, sizeof(field)); ! field = SWAP_INT(field); field = SET(field, (int)val, size); ! field = SWAP_INT(field); ! memcpy(ptr, &field, sizeof(field)); _RET(value); } *************** *** 651,655 **** i_get(void *ptr, unsigned size) { ! int val = *(int *)ptr; GET_BITFIELD(val, size); return PyInt_FromLong(val); --- 661,666 ---- i_get(void *ptr, unsigned size) { ! int val; ! memcpy(&val, ptr, sizeof(val)); GET_BITFIELD(val, size); return PyInt_FromLong(val); *************** *** 659,663 **** i_get_sw(void *ptr, unsigned size) { ! int val = *(int *)ptr; val = SWAP_INT(val); GET_BITFIELD(val, size); --- 670,675 ---- i_get_sw(void *ptr, unsigned size) { ! int val; ! memcpy(&val, ptr, sizeof(val)); val = SWAP_INT(val); GET_BITFIELD(val, size); *************** *** 709,715 **** if (get_ulong(value, &val) < 0) return NULL; ! field = SWAP_INT(*(unsigned int *)ptr); field = (unsigned int)SET(field, (unsigned int)val, size); ! *(unsigned int *)ptr = SWAP_INT(field); _RET(value); } --- 721,728 ---- if (get_ulong(value, &val) < 0) return NULL; ! memcpy(&field, ptr, sizeof(field)); field = (unsigned int)SET(field, (unsigned int)val, size); ! field = SWAP_INT(field); ! memcpy(ptr, &field, sizeof(field)); _RET(value); } *************** *** 719,723 **** I_get(void *ptr, unsigned size) { ! unsigned int val = *(unsigned int *)ptr; GET_BITFIELD(val, size); return PyLong_FromUnsignedLong(val); --- 732,737 ---- I_get(void *ptr, unsigned size) { ! unsigned int val; ! memcpy(&val, ptr, sizeof(val)); GET_BITFIELD(val, size); return PyLong_FromUnsignedLong(val); *************** *** 727,731 **** I_get_sw(void *ptr, unsigned size) { ! unsigned int val = *(unsigned int *)ptr; val = SWAP_INT(val); GET_BITFIELD(val, size); --- 741,746 ---- I_get_sw(void *ptr, unsigned size) { ! unsigned int val; ! memcpy(&val, ptr, sizeof(val)); val = SWAP_INT(val); GET_BITFIELD(val, size); *************** *** 753,759 **** if (get_long(value, &val) < 0) return NULL; ! field = SWAP_LONG(*(long *)ptr); field = (long)SET(field, val, size); ! *(long *)ptr = SWAP_LONG(field); _RET(value); } --- 768,776 ---- if (get_long(value, &val) < 0) return NULL; ! memcpy(&field, ptr, sizeof(field)); ! field = SWAP_LONG(field); field = (long)SET(field, val, size); ! field = SWAP_LONG(field); ! memcpy(ptr, &field, sizeof(field)); _RET(value); } *************** *** 763,767 **** l_get(void *ptr, unsigned size) { ! long val = *(long *)ptr; GET_BITFIELD(val, size); return PyInt_FromLong(val); --- 780,785 ---- l_get(void *ptr, unsigned size) { ! long val; ! memcpy(&val, ptr, sizeof(val)); GET_BITFIELD(val, size); return PyInt_FromLong(val); *************** *** 771,775 **** l_get_sw(void *ptr, unsigned size) { ! long val = *(long *)ptr; val = SWAP_LONG(val); GET_BITFIELD(val, size); --- 789,794 ---- l_get_sw(void *ptr, unsigned size) { ! long val; ! memcpy(&val, ptr, sizeof(val)); val = SWAP_LONG(val); GET_BITFIELD(val, size); *************** *** 797,803 **** if (get_ulong(value, &val) < 0) return NULL; ! field = SWAP_LONG(*(unsigned long *)ptr); field = (unsigned long)SET(field, val, size); ! *(unsigned long *)ptr = SWAP_LONG(field); _RET(value); } --- 816,824 ---- if (get_ulong(value, &val) < 0) return NULL; ! memcpy(&field, ptr, sizeof(field)); ! field = SWAP_LONG(field); field = (unsigned long)SET(field, val, size); ! field = SWAP_LONG(field); ! memcpy(ptr, &field, sizeof(field)); _RET(value); } *************** *** 807,811 **** L_get(void *ptr, unsigned size) { ! unsigned long val = *(unsigned long *)ptr; GET_BITFIELD(val, size); return PyLong_FromUnsignedLong(val); --- 828,833 ---- L_get(void *ptr, unsigned size) { ! unsigned long val; ! memcpy(&val, ptr, sizeof(val)); GET_BITFIELD(val, size); return PyLong_FromUnsignedLong(val); *************** *** 815,819 **** L_get_sw(void *ptr, unsigned size) { ! unsigned long val = *(unsigned long *)ptr; val = SWAP_LONG(val); GET_BITFIELD(val, size); --- 837,842 ---- L_get_sw(void *ptr, unsigned size) { ! unsigned long val; ! memcpy(&val, ptr, sizeof(val)); val = SWAP_LONG(val); GET_BITFIELD(val, size); *************** *** 842,848 **** if (get_longlong(value, &val) < 0) return NULL; ! field = SWAP_8(*(PY_LONG_LONG *)ptr); field = (PY_LONG_LONG)SET(field, val, size); ! *(PY_LONG_LONG *)ptr = SWAP_8(field); _RET(value); } --- 865,873 ---- if (get_longlong(value, &val) < 0) return NULL; ! memcpy(&field, ptr, sizeof(field)); ! field = SWAP_8(field); field = (PY_LONG_LONG)SET(field, val, size); ! field = SWAP_8(field); ! memcpy(ptr, &field, sizeof(field)); _RET(value); } *************** *** 851,855 **** q_get(void *ptr, unsigned size) { ! PY_LONG_LONG val = *(PY_LONG_LONG *)ptr; GET_BITFIELD(val, size); return PyLong_FromLongLong(val); --- 876,881 ---- q_get(void *ptr, unsigned size) { ! PY_LONG_LONG val; ! memcpy(&val, ptr, sizeof(val)); GET_BITFIELD(val, size); return PyLong_FromLongLong(val); *************** *** 859,863 **** q_get_sw(void *ptr, unsigned size) { ! PY_LONG_LONG val = *(PY_LONG_LONG *)ptr; val = SWAP_8(val); GET_BITFIELD(val, size); --- 885,890 ---- q_get_sw(void *ptr, unsigned size) { ! PY_LONG_LONG val; ! memcpy(&val, ptr, sizeof(val)); val = SWAP_8(val); GET_BITFIELD(val, size); *************** *** 885,891 **** if (get_ulonglong(value, &val) < 0) return NULL; ! field = SWAP_8(*(unsigned PY_LONG_LONG *)ptr); field = (unsigned PY_LONG_LONG)SET(field, val, size); ! *(unsigned PY_LONG_LONG *)ptr = SWAP_8(field); _RET(value); } --- 912,920 ---- if (get_ulonglong(value, &val) < 0) return NULL; ! memcpy(&field, ptr, sizeof(field)); ! field = SWAP_8(field); field = (unsigned PY_LONG_LONG)SET(field, val, size); ! field = SWAP_8(field); ! memcpy(ptr, &field, sizeof(field)); _RET(value); } *************** *** 894,898 **** Q_get(void *ptr, unsigned size) { ! unsigned PY_LONG_LONG val = *(unsigned PY_LONG_LONG *)ptr; GET_BITFIELD(val, size); return PyLong_FromUnsignedLongLong(val); --- 923,928 ---- Q_get(void *ptr, unsigned size) { ! unsigned PY_LONG_LONG val; ! memcpy(&val, ptr, sizeof(val)); GET_BITFIELD(val, size); return PyLong_FromUnsignedLongLong(val); *************** *** 902,906 **** Q_get_sw(void *ptr, unsigned size) { ! unsigned PY_LONG_LONG val = *(unsigned PY_LONG_LONG *)ptr; val = SWAP_8(val); GET_BITFIELD(val, size); --- 932,937 ---- Q_get_sw(void *ptr, unsigned size) { ! unsigned PY_LONG_LONG val; ! memcpy(&val, ptr, sizeof(val)); val = SWAP_8(val); GET_BITFIELD(val, size); *************** *** 934,938 **** d_get(void *ptr, unsigned size) { ! return PyFloat_FromDouble(*(double *)ptr); } --- 965,971 ---- d_get(void *ptr, unsigned size) { ! double val; ! memcpy(&val, ptr, sizeof(val)); ! return PyFloat_FromDouble(val); } *************** *** 988,992 **** f_get(void *ptr, unsigned size) { ! return PyFloat_FromDouble(*(float *)ptr); } --- 1021,1027 ---- f_get(void *ptr, unsigned size) { ! float val; ! memcpy(&val, ptr, sizeof(val)); ! return PyFloat_FromDouble(val); } |