From a64f8f4196d227af04ed86a53fb2cedef175402d Mon Sep 17 00:00:00 2001 From: Nikita Smith Date: Tue, 2 Sep 2025 22:02:48 -0700 Subject: [PATCH] clean up over base strings in the linker layer --- src/linker/base_ext/base_strings.c | 55 ++---------------------------- src/linker/base_ext/base_strings.h | 9 +---- src/linker/codeview_ext/codeview.c | 2 +- 3 files changed, 5 insertions(+), 61 deletions(-) diff --git a/src/linker/base_ext/base_strings.c b/src/linker/base_ext/base_strings.c index fe465f5e..5688bb4a 100644 --- a/src/linker/base_ext/base_strings.c +++ b/src/linker/base_ext/base_strings.c @@ -1,52 +1,10 @@ // Copyright (c) 2025 Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) -internal String8Node * -str8_list_push_raw(Arena *arena, String8List *list, void *data_ptr, U64 data_size) +internal B32 +str8_starts_with(String8 string, String8 expected_prefix) { - String8 data = str8((U8 *)data_ptr, data_size); - String8Node *node = str8_list_push(arena, list, data); - return node; -} - -internal U64 -str8_list_push_pad(Arena *arena, String8List *list, U64 offset, U64 align) -{ - U64 pad_size = AlignPow2(offset, align) - offset; - U8 *pad = push_array(arena, U8, pad_size); - MemorySet(pad, 0, pad_size); - str8_list_push(arena, list, str8(pad, pad_size)); - return pad_size; -} - -internal U64 -str8_list_push_pad_front(Arena *arena, String8List *list, U64 offset, U64 align) -{ - U64 pad_size = AlignPow2(offset, align) - offset; - U8 *pad = push_array(arena, U8, pad_size); - MemorySet(pad, 0, pad_size); - str8_list_push_front(arena, list, str8(pad, pad_size)); - return pad_size; -} - -internal String8List -str8_list_arr_concat(String8List *v, U64 count) -{ - String8List result = {0}; - for (U64 i = 0; i < count; i += 1) { - str8_list_concat_in_place(&result, &v[i]); - } - return result; -} - -internal String8Node * -str8_list_push_many(Arena *arena, String8List *list, U64 count) -{ - String8Node *arr = push_array(arena, String8Node, count); - for (U64 i = 0; i < count; ++i) { - str8_list_push_node(list, arr + i); - } - return arr; + return str8_match(str8_prefix(string, expected_prefix.size), expected_prefix, 0); } internal String8Node * @@ -63,10 +21,3 @@ str8_list_pop_front(String8List *list) return node; } -internal U64 -hash_from_str8(String8 string) -{ - XXH64_hash_t hash64 = XXH3_64bits(string.str, string.size); - return hash64; -} - diff --git a/src/linker/base_ext/base_strings.h b/src/linker/base_ext/base_strings.h index b469cccf..500f2fa0 100644 --- a/src/linker/base_ext/base_strings.h +++ b/src/linker/base_ext/base_strings.h @@ -3,15 +3,8 @@ #pragma once -#define str8_list_push_struct(a,l,d) str8_list_push_raw(a, l, d, sizeof(*d)) -internal String8Node * str8_list_push_raw(Arena *arena, String8List *list, void *data_ptr, U64 data_size); -internal U64 str8_list_push_pad(Arena *arena, String8List *list, U64 offset, U64 align); -internal U64 str8_list_push_pad_front(Arena *arena, String8List *list, U64 offset, U64 align); -internal String8List str8_list_arr_concat(String8List *v, U64 count); -internal String8Node * str8_list_push_many(Arena *arena, String8List *list, U64 count); - // TODO: remove internal String8Node * str8_list_pop_front(String8List *list); -internal U64 hash_from_str8(String8 string); +internal B32 str8_starts_with(String8 string, String8 expected_prefix); diff --git a/src/linker/codeview_ext/codeview.c b/src/linker/codeview_ext/codeview.c index af4aeba7..672d1689 100644 --- a/src/linker/codeview_ext/codeview.c +++ b/src/linker/codeview_ext/codeview.c @@ -587,7 +587,7 @@ cv_file_chksms_from_debug_s(CV_DebugS debug_s) internal U64 cv_string_hash_table_hash(String8 string) { - return hash_from_str8(string); + return u64_hash_from_str8(string); } internal int