diff --git a/src/lib_raddbgi_make/raddbgi_make.c b/src/lib_raddbgi_make/raddbgi_make.c index bf1597d7..560f4bf8 100644 --- a/src/lib_raddbgi_make/raddbgi_make.c +++ b/src/lib_raddbgi_make/raddbgi_make.c @@ -208,6 +208,16 @@ rdim_str8_list_push(RDIM_Arena *arena, RDIM_String8List *list, RDIM_String8 stri list->RDIM_String8List_TotalSizeMember += string.RDIM_String8_SizeMember; } +RDI_PROC void +rdim_str8_list_push_front(RDIM_Arena *arena, RDIM_String8List *list, RDIM_String8 string) +{ + RDIM_String8Node *n = rdim_push_array(arena, RDIM_String8Node, 1); + n->RDIM_String8Node_StringMember = string; + RDIM_SLLQueuePushFront_N(list->RDIM_String8List_FirstMember, list->RDIM_String8List_LastMember, n, RDIM_String8Node_NextPtrMember); + list->RDIM_String8List_NodeCountMember += 1; + list->RDIM_String8List_TotalSizeMember += string.RDIM_String8_SizeMember; +} + RDI_PROC void rdim_str8_list_push_align(RDIM_Arena *arena, RDIM_String8List *list, RDI_U64 align) { @@ -1053,7 +1063,7 @@ rdim_normal_string_from_bake_path_node(RDIM_Arena *arena, RDIM_BakePathNode *nod { if(n->name.size != 0) { - rdim_str8_list_push(scratch.arena, &list, n->name); + rdim_str8_list_push_front(scratch.arena, &list, n->name); } } RDIM_String8 result = rdim_str8_list_join(arena, &list, rdim_str8_lit("/")); diff --git a/src/lib_raddbgi_make/raddbgi_make.h b/src/lib_raddbgi_make/raddbgi_make.h index 45fcb703..d55dfe3d 100644 --- a/src/lib_raddbgi_make/raddbgi_make.h +++ b/src/lib_raddbgi_make/raddbgi_make.h @@ -988,6 +988,7 @@ RDI_PROC RDI_S32 rdim_str8_match(RDIM_String8 a, RDIM_String8 b, RDIM_StringMatc //- rjf: string lists RDI_PROC void rdim_str8_list_push(RDIM_Arena *arena, RDIM_String8List *list, RDIM_String8 string); +RDI_PROC void rdim_str8_list_push_front(RDIM_Arena *arena, RDIM_String8List *list, RDIM_String8 string); RDI_PROC void rdim_str8_list_push_align(RDIM_Arena *arena, RDIM_String8List *list, RDI_U64 align); RDI_PROC RDIM_String8 rdim_str8_list_join(RDIM_Arena *arena, RDIM_String8List *list, RDIM_String8 sep);