Lines Matching full:array

31 // sized element in this array. Disable this for warn-as-error builds.
38 uintptr_t size; // number of elements in the 'data' array
46 static void emutls_shutdown(emutls_address_array *array);
101 emutls_address_array *array = (emutls_address_array *)ptr; in emutls_key_destructor() local
102 if (array->skip_destructor_rounds > 0) { in emutls_key_destructor()
109 array->skip_destructor_rounds--; in emutls_key_destructor()
110 emutls_setspecific(array); in emutls_key_destructor()
112 emutls_shutdown(array); in emutls_key_destructor()
260 static void emutls_shutdown(emutls_address_array *array) { in emutls_shutdown() argument
261 if (array) { in emutls_shutdown()
263 for (i = 0; i < array->size; ++i) { in emutls_shutdown()
264 if (array->data[i]) in emutls_shutdown()
265 emutls_memalign_free(array->data[i]); in emutls_shutdown()
328 static __inline void emutls_check_array_set_size(emutls_address_array *array, in emutls_check_array_set_size() argument
330 if (array == NULL) in emutls_check_array_set_size()
332 array->size = size; in emutls_check_array_set_size()
333 emutls_setspecific(array); in emutls_check_array_set_size()
336 // Returns the new 'data' array size, number of elements,
356 emutls_address_array *array = emutls_getspecific(); in emutls_get_address_array() local
357 if (array == NULL) { in emutls_get_address_array()
359 array = (emutls_address_array *)malloc(emutls_asize(new_size)); in emutls_get_address_array()
360 if (array) { in emutls_get_address_array()
361 memset(array->data, 0, new_size * sizeof(void *)); in emutls_get_address_array()
362 array->skip_destructor_rounds = EMUTLS_SKIP_DESTRUCTOR_ROUNDS; in emutls_get_address_array()
364 emutls_check_array_set_size(array, new_size); in emutls_get_address_array()
365 } else if (index > array->size) { in emutls_get_address_array()
366 uintptr_t orig_size = array->size; in emutls_get_address_array()
368 array = (emutls_address_array *)realloc(array, emutls_asize(new_size)); in emutls_get_address_array()
369 if (array) in emutls_get_address_array()
370 memset(array->data + orig_size, 0, in emutls_get_address_array()
372 emutls_check_array_set_size(array, new_size); in emutls_get_address_array()
374 return array; in emutls_get_address_array()
394 emutls_address_array *array = emutls_get_address_array(index--); in __emutls_get_address() local
395 if (array->data[index] == NULL) in __emutls_get_address()
396 array->data[index] = emutls_allocate_object(control); in __emutls_get_address()
397 return array->data[index]; in __emutls_get_address()