- if (enc == INTSET_ENC_INT64)
- return ((int64_t*)is->contents)[pos];
- else if (enc == INTSET_ENC_INT32)
- return ((int32_t*)is->contents)[pos];
- return ((int16_t*)is->contents)[pos];
+ int64_t v64;
+ int32_t v32;
+ int16_t v16;
+
+ if (enc == INTSET_ENC_INT64) {
+ memcpy(&v64,((int64_t*)is->contents)+pos,sizeof(v64));
+ memrev64ifbe(&v64);
+ return v64;
+ } else if (enc == INTSET_ENC_INT32) {
+ memcpy(&v32,((int32_t*)is->contents)+pos,sizeof(v32));
+ memrev32ifbe(&v32);
+ return v32;
+ } else {
+ memcpy(&v16,((int16_t*)is->contents)+pos,sizeof(v16));
+ memrev16ifbe(&v16);
+ return v16;
+ }