rdi make: fix incorrect base encoding offset initialization when pushing into new location chunk

This commit is contained in:
Ryan Fleury
2025-09-16 12:28:33 -07:00
parent 49bcb252d9
commit 443646b356
2 changed files with 5 additions and 4 deletions
+3 -2
View File
@@ -4,7 +4,7 @@
//////////////////////////////// ////////////////////////////////
//~ rjf: API Implementation Helper Macros //~ rjf: API Implementation Helper Macros
#define RDIM_IdxedChunkListPush(arena, list, chunk_type, element_type, cap_value, result) \ #define RDIM_IdxedChunkListPush(arena, list, chunk_type, element_type, cap_value, result, ...) \
element_type *result = 0;\ element_type *result = 0;\
do\ do\
{\ {\
@@ -14,6 +14,7 @@ if(n == 0 || n->count >= n->cap)\
n = rdim_push_array(arena, chunk_type, 1);\ n = rdim_push_array(arena, chunk_type, 1);\
n->cap = cap_value;\ n->cap = cap_value;\
n->base_idx = list->total_count;\ n->base_idx = list->total_count;\
__VA_ARGS__;\
n->v = rdim_push_array_no_zero(arena, element_type, n->cap);\ n->v = rdim_push_array_no_zero(arena, element_type, n->cap);\
RDIM_SLLQueuePush(list->first, list->last, n);\ RDIM_SLLQueuePush(list->first, list->last, n);\
list->chunk_count += 1;\ list->chunk_count += 1;\
@@ -1054,7 +1055,7 @@ rdim_encoded_size_from_location_info(RDIM_LocationInfo *info)
RDI_PROC RDIM_Location * RDI_PROC RDIM_Location *
rdim_location_chunk_list_push_new(RDIM_Arena *arena, RDIM_LocationChunkList *list, RDI_U64 cap, RDIM_LocationInfo *info) rdim_location_chunk_list_push_new(RDIM_Arena *arena, RDIM_LocationChunkList *list, RDI_U64 cap, RDIM_LocationInfo *info)
{ {
RDIM_IdxedChunkListPush(arena, list, RDIM_LocationChunkNode, RDIM_Location, cap, result); RDIM_IdxedChunkListPush(arena, list, RDIM_LocationChunkNode, RDIM_Location, cap, result, n->base_encoding_off = list->total_encoded_size);
{ {
RDI_U64 encoded_size = rdim_encoded_size_from_location_info(info); RDI_U64 encoded_size = rdim_encoded_size_from_location_info(info);
rdim_memcpy_struct(&result->info, info); rdim_memcpy_struct(&result->info, info);
+2 -2
View File
@@ -167,7 +167,7 @@ rdi_string_from_eval_op(Arena *arena, RDI_EvalOp op)
switch(op) switch(op)
{ {
default:{result = push_str8f(arena, "%#x", op);}break; default:{result = push_str8f(arena, "%#x", op);}break;
#define X(name) case RDI_EvalOp_##name:{result = str8_lit("#name");}break; #define X(name) case RDI_EvalOp_##name:{result = str8_lit(#name);}break;
RDI_EvalOp_XList RDI_EvalOp_XList
#undef X #undef X
} }
@@ -181,7 +181,7 @@ rdi_string_from_eval_type_group(Arena *arena, RDI_EvalTypeGroup eval_type_group)
switch(eval_type_group) switch(eval_type_group)
{ {
default:{result = push_str8f(arena, "%#x", eval_type_group);}break; default:{result = push_str8f(arena, "%#x", eval_type_group);}break;
#define X(name) case RDI_EvalTypeGroup_##name:{result = str8_lit("#name");}break; #define X(name) case RDI_EvalTypeGroup_##name:{result = str8_lit(#name);}break;
RDI_EvalTypeGroup_XList RDI_EvalTypeGroup_XList
#undef X #undef X
} }