commit e12af77

default  ·  2024-03-09 06:18:51 +0000 UTC
parent 093f4af
Backport from xs.
2 files changed,  +12, -10
M xs.h
M xs.h
+11, -9
 1@@ -154,8 +154,15 @@ xs_val xs_stock_true[]  = { XSTYPE_TRUE };
 2 xs_val xs_stock_false[] = { XSTYPE_FALSE };
 3 xs_val xs_stock_0[]     = { XSTYPE_NUMBER, '0', '\0' };
 4 xs_val xs_stock_1[]     = { XSTYPE_NUMBER, '1', '\0' };
 5+
 6+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 7 xs_val xs_stock_list[]  = { XSTYPE_LIST, 0, 0, 0, 1 + _XS_TYPE_SIZE + 1, XSTYPE_EOM };
 8 xs_val xs_stock_dict[]  = { XSTYPE_DICT, 0, 0, 0, 1 + _XS_TYPE_SIZE + 1, XSTYPE_EOM };
 9+#else
10+xs_val xs_stock_list[]  = { XSTYPE_LIST, 1 + _XS_TYPE_SIZE + 1, 0, 0, 0, XSTYPE_EOM };
11+xs_val xs_stock_dict[]  = { XSTYPE_DICT, 1 + _XS_TYPE_SIZE + 1, 0, 0, 0, XSTYPE_EOM };
12+#endif
13+
14 
15 void *_xs_realloc(void *ptr, size_t size, const char *file, int line, const char *func)
16 {
17@@ -274,21 +281,16 @@ xstype xs_type(const xs_val *data)
18 void _xs_put_size(xs_val *ptr, int i)
19 /* must match _XS_TYPE_SIZE */
20 {
21-    unsigned char *p = (unsigned char *)ptr;
22-
23-    p[0] = (i >> 24) & 0x7f;
24-    p[1] = (i >> 16) & 0xff;
25-    p[2] = (i >> 8) & 0xff;
26-    p[3] = i & 0xff;
27+    memcpy(ptr, &i, sizeof(i));
28 }
29 
30 
31 int _xs_get_size(const xs_val *ptr)
32 /* must match _XS_TYPE_SIZE */
33 {
34-    unsigned char *p = (unsigned char *)ptr;
35-
36-    return (p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3];
37+    int i;
38+    memcpy(&i, ptr, sizeof(i));
39+    return i;
40 }
41 
42 
+1, -1
1@@ -1 +1 @@
2-/* 98305e8badd7ed505bb6e667c202bad63e4e79ef 2024-02-20T05:16:49+01:00 */
3+/* 73ff6e75bec88fa0b908b039462180a8ac1401de 2024-03-08T07:17:30+01:00 */