Lines Matching defs:string_list
270 VkResult create_string_list(const struct loader_instance *inst, uint32_t allocated_count, struct loader_string_list *string_list) {
271 assert(string_list);
272 string_list->list = loader_instance_heap_calloc(inst, sizeof(char *) * allocated_count, VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
273 if (NULL == string_list->list) {
276 string_list->allocated_count = allocated_count;
277 string_list->count = 0;
281 VkResult append_str_to_string_list(const struct loader_instance *inst, struct loader_string_list *string_list, char *str) {
282 assert(string_list && str);
283 if (string_list->allocated_count == 0) {
284 string_list->allocated_count = 32;
285 string_list->list =
286 loader_instance_heap_calloc(inst, sizeof(char *) * string_list->allocated_count, VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE);
287 if (NULL == string_list->list) {
290 } else if (string_list->count + 1 > string_list->allocated_count) {
291 uint32_t new_allocated_count = string_list->allocated_count * 2;
292 string_list->list = loader_instance_heap_realloc(inst, string_list->list, sizeof(char *) * string_list->allocated_count,
294 if (NULL == string_list->list) {
298 memset(string_list->list + string_list->allocated_count, 0, string_list->allocated_count);
299 string_list->allocated_count *= 2;
301 string_list->list[string_list->count++] = str;
305 VkResult copy_str_to_string_list(const struct loader_instance *inst, struct loader_string_list *string_list, const char *str,
307 assert(string_list && str);
314 VkResult res = append_str_to_string_list(inst, string_list, new_str);
322 void free_string_list(const struct loader_instance *inst, struct loader_string_list *string_list) {
323 assert(string_list);
324 if (string_list->list) {
325 for (uint32_t i = 0; i < string_list->count; i++) {
326 loader_instance_heap_free(inst, string_list->list[i]);
327 string_list->list[i] = NULL;
329 loader_instance_heap_free(inst, string_list->list);
331 memset(string_list, 0, sizeof(struct loader_string_list));