static prop_array_t _prop_array_alloc(unsigned int capacity) { prop_array_t pa; prop_object_t *array; if (capacity != 0) { array = _PROP_CALLOC(capacity * sizeof(prop_object_t), M_PROP_ARRAY); if (array == NULL) return (NULL); } else array = NULL; pa = _PROP_POOL_GET(_prop_array_pool); if (pa != NULL) { _prop_object_init(&pa->pa_obj, &_prop_object_type_array); pa->pa_obj.po_type = &_prop_object_type_array; _PROP_RWLOCK_INIT(pa->pa_rwlock); pa->pa_array = array; pa->pa_capacity = capacity; pa->pa_count = 0; pa->pa_flags = 0; pa->pa_version = 0; } else if (array != NULL) _PROP_FREE(array, M_PROP_ARRAY); return (pa); }
static prop_string_t _prop_string_alloc(void) { prop_string_t ps; ps = _PROP_POOL_GET(_prop_string_pool); if (ps != NULL) { _prop_object_init(&ps->ps_obj, &_prop_object_type_string); ps->ps_mutable = NULL; ps->ps_size = 0; ps->ps_flags = 0; } return (ps); }