diff options
author | Kevin Newton <[email protected]> | 2023-10-30 23:15:31 -0400 |
---|---|---|
committer | Kevin Newton <[email protected]> | 2023-11-01 13:10:29 -0400 |
commit | 8302f9986caf6679c728ae2b31b1211401f48d28 (patch) | |
tree | 6cb1c95569ab49eab35a8b581fd5f302fb1adbab /prism/util/pm_string_list.c | |
parent | b67994d6bf88fcfd66fc0368a03a92aa81fe8b11 (diff) |
[ruby/prism] Documentation for pm_string_t
https://github.com/ruby/prism/commit/ff1d2ec579
Diffstat (limited to 'prism/util/pm_string_list.c')
-rw-r--r-- | prism/util/pm_string_list.c | 23 |
1 files changed, 8 insertions, 15 deletions
diff --git a/prism/util/pm_string_list.c b/prism/util/pm_string_list.c index fa7f20619f..d49e4ed734 100644 --- a/prism/util/pm_string_list.c +++ b/prism/util/pm_string_list.c @@ -1,26 +1,19 @@ #include "prism/util/pm_string_list.h" /** - * Initialize a pm_string_list_t with its default values. - */ -void -pm_string_list_init(pm_string_list_t *string_list) { - string_list->length = 0; - string_list->capacity = 1; - string_list->strings = (pm_string_t *) malloc(sizeof(pm_string_t)); -} - -/** * Append a pm_string_t to the given string list. */ void pm_string_list_append(pm_string_list_t *string_list, pm_string_t *string) { if (string_list->length + 1 > string_list->capacity) { - pm_string_t *original_string = string_list->strings; - string_list->capacity *= 2; - string_list->strings = (pm_string_t *) malloc(string_list->capacity * sizeof(pm_string_t)); - memcpy(string_list->strings, original_string, (string_list->length) * sizeof(pm_string_t)); - free(original_string); + if (string_list->capacity == 0) { + string_list->capacity = 1; + } else { + string_list->capacity *= 2; + } + + string_list->strings = realloc(string_list->strings, string_list->capacity * sizeof(pm_string_t)); + if (string_list->strings == NULL) abort(); } string_list->strings[string_list->length++] = *string; |