diff options
-rw-r--r-- | src/plugins/kdb/db2/libdb2/include/db-int.h | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/plugins/kdb/db2/libdb2/include/db-int.h b/src/plugins/kdb/db2/libdb2/include/db-int.h index 0dcbf40..7e981d4 100644 --- a/src/plugins/kdb/db2/libdb2/include/db-int.h +++ b/src/plugins/kdb/db2/libdb2/include/db-int.h @@ -160,11 +160,15 @@ typedef u_int32_t recno_t; ((char *)&a)[3] = ((char *)&_tmp)[0]; \ } #define P_32_SWAP(a) { \ - u_int32_t _tmp = *(u_int32_t *)a; \ - ((char *)a)[0] = ((char *)&_tmp)[3]; \ - ((char *)a)[1] = ((char *)&_tmp)[2]; \ - ((char *)a)[2] = ((char *)&_tmp)[1]; \ - ((char *)a)[3] = ((char *)&_tmp)[0]; \ + char _tmp[4]; \ + _tmp[0] = ((char *)a)[0]; \ + _tmp[1] = ((char *)a)[1]; \ + _tmp[2] = ((char *)a)[2]; \ + _tmp[3] = ((char *)a)[3]; \ + ((char *)a)[0] = _tmp[3]; \ + ((char *)a)[1] = _tmp[2]; \ + ((char *)a)[2] = _tmp[1]; \ + ((char *)a)[3] = _tmp[0]; \ } #define P_32_COPY(a, b) { \ ((char *)&(b))[0] = ((char *)&(a))[3]; \ @@ -185,9 +189,11 @@ typedef u_int32_t recno_t; ((char *)&a)[1] = ((char *)&_tmp)[0]; \ } #define P_16_SWAP(a) { \ - u_int16_t _tmp = *(u_int16_t *)a; \ - ((char *)a)[0] = ((char *)&_tmp)[1]; \ - ((char *)a)[1] = ((char *)&_tmp)[0]; \ + char _tmp[2]; \ + _tmp[0] = ((char *)a)[0]; \ + _tmp[1] = ((char *)a)[1]; \ + ((char *)a)[0] = _tmp[1]; \ + ((char *)a)[1] = _tmp[0]; \ } #define P_16_COPY(a, b) { \ ((char *)&(b))[0] = ((char *)&(a))[1]; \ |