aboutsummaryrefslogtreecommitdiff
path: root/builtins/datatypes.h
diff options
context:
space:
mode:
Diffstat (limited to 'builtins/datatypes.h')
-rw-r--r--builtins/datatypes.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/builtins/datatypes.h b/builtins/datatypes.h
index 3a2a9da7..649de7a6 100644
--- a/builtins/datatypes.h
+++ b/builtins/datatypes.h
@@ -2,12 +2,14 @@
#include <stdint.h>
#include <stdbool.h>
+#define MIN_STRIDE (INT16_MIN>>1)
+#define MAX_STRIDE (INT16_MAX>>1)
typedef struct {
void *data;
int64_t length:42;
- uint8_t free:4;
- bool copy_on_write:1, atomic:1;
- int16_t stride:16;
+ uint8_t free:4, data_refcount:2;
+ bool atomic:1;
+ int16_t stride:15;
} array_t;
typedef struct {
@@ -16,8 +18,8 @@ typedef struct {
} bucket_t;
typedef struct {
- uint32_t count:32, last_free:31;
- bool copy_on_write:1;
+ uint32_t count:31, last_free:31;
+ uint8_t data_refcount:2;
bucket_t buckets[0];
} bucket_info_t;