Lines Matching refs:ht

49 static void zend_hash_clone_zval(HashTable *ht, HashTable *source, int bind);
89 static int compact_hash_table(HashTable *ht) in compact_hash_table() argument
95 if (!ht->nNumOfElements) { in compact_hash_table()
100 if (ht->nNumOfElements >= 0x80000000) { in compact_hash_table()
104 while ((1U << i) < ht->nNumOfElements) { in compact_hash_table()
110 if (nSize >= ht->nTableSize) { in compact_hash_table()
115 t = (Bucket **)pemalloc(nSize * sizeof(Bucket *), ht->persistent); in compact_hash_table()
120 pefree(ht->arBuckets, ht->persistent); in compact_hash_table()
122 ht->arBuckets = t; in compact_hash_table()
123 ht->nTableSize = nSize; in compact_hash_table()
124 ht->nTableMask = ht->nTableSize - 1; in compact_hash_table()
125 zend_hash_rehash(ht); in compact_hash_table()
161 void zend_accel_free_user_functions(HashTable *ht TSRMLS_DC) in zend_accel_free_user_functions()
163 dtor_func_t orig_dtor = ht->pDestructor; in zend_accel_free_user_functions()
165 ht->pDestructor = NULL; in zend_accel_free_user_functions()
166 zend_hash_apply(ht, (apply_func_t) is_not_internal_function TSRMLS_CC); in zend_accel_free_user_functions()
167 ht->pDestructor = orig_dtor; in zend_accel_free_user_functions()
257 if (ret->value.ht && ret->value.ht != &EG(symbol_table)) {
258 ALLOC_HASHTABLE(ret->value.ht);
259 zend_hash_clone_zval(ret->value.ht, src->value.ht, 0);
267 static void zend_hash_clone_zval(HashTable *ht, HashTable *source, int bind) argument
274 ht->nTableSize = source->nTableSize;
275 ht->nTableMask = source->nTableMask;
276 ht->nNumOfElements = source->nNumOfElements;
277 ht->nNextFreeElement = source->nNextFreeElement;
278 ht->pDestructor = ZVAL_PTR_DTOR;
280 ht->inconsistent = 0;
282 ht->persistent = 0;
283 ht->arBuckets = NULL;
284 ht->pListHead = NULL;
285 ht->pListTail = NULL;
286 ht->pInternalPointer = NULL;
287 ht->nApplyCount = 0;
288 ht->bApplyProtection = 1;
291 if (!ht->nTableMask) {
292 ht->arBuckets = (Bucket**)&uninitialized_bucket;
297 ht->arBuckets = (Bucket **) ecalloc(ht->nTableSize, sizeof(Bucket *));
299 prev = &ht->pListHead;
302 nIndex = p->h & ht->nTableMask;
327 q->pNext = ht->arBuckets[nIndex];
332 ht->arBuckets[nIndex] = q;
335 q->pListLast = ht->pListTail;
336 ht->pListTail = q;
374 if (((zval*)p->pDataPtr)->value.ht && ((zval*)p->pDataPtr)->value.ht != &EG(symbol_table)) {
375 ALLOC_HASHTABLE(ppz->value.ht);
376 zend_hash_clone_zval(ppz->value.ht, ((zval*)p->pDataPtr)->value.ht, 0);
384 ht->pInternalPointer = ht->pListHead;
387 static void zend_hash_clone_methods(HashTable *ht, HashTable *source, zend_class_entry *old_ce, zen… argument
395 ht->nTableSize = source->nTableSize;
396 ht->nTableMask = source->nTableMask;
397 ht->nNumOfElements = source->nNumOfElements;
398 ht->nNextFreeElement = source->nNextFreeElement;
399 ht->pDestructor = ZEND_FUNCTION_DTOR;
401 ht->inconsistent = 0;
403 ht->persistent = 0;
404 ht->pListHead = NULL;
405 ht->pListTail = NULL;
406 ht->pInternalPointer = NULL;
407 ht->nApplyCount = 0;
408 ht->bApplyProtection = 1;
411 if (!ht->nTableMask) {
412 ht->arBuckets = (Bucket**)&uninitialized_bucket;
417 ht->arBuckets = (Bucket **) ecalloc(ht->nTableSize, sizeof(Bucket *));
419 prev = &ht->pListHead;
422 nIndex = p->h & ht->nTableMask;
447 q->pNext = ht->arBuckets[nIndex];
452 ht->arBuckets[nIndex] = q;
455 q->pListLast = ht->pListTail;
456 ht->pListTail = q;
496 ht->pInternalPointer = ht->pListHead;
499 static void zend_hash_clone_prop_info(HashTable *ht, HashTable *source, zend_class_entry *old_ce, z… argument
506 ht->nTableSize = source->nTableSize;
507 ht->nTableMask = source->nTableMask;
508 ht->nNumOfElements = source->nNumOfElements;
509 ht->nNextFreeElement = source->nNextFreeElement;
510 ht->pDestructor = (dtor_func_t) zend_destroy_property_info;
512 ht->inconsistent = 0;
514 ht->persistent = 0;
515 ht->pListHead = NULL;
516 ht->pListTail = NULL;
517 ht->pInternalPointer = NULL;
518 ht->nApplyCount = 0;
519 ht->bApplyProtection = 1;
522 if (!ht->nTableMask) {
523 ht->arBuckets = (Bucket**)&uninitialized_bucket;
528 ht->arBuckets = (Bucket **) ecalloc(ht->nTableSize, sizeof(Bucket *));
530 prev = &ht->pListHead;
533 nIndex = p->h & ht->nTableMask;
558 q->pNext = ht->arBuckets[nIndex];
563 ht->arBuckets[nIndex] = q;
566 q->pListLast = ht->pListTail;
567 ht->pListTail = q;
597 ht->pInternalPointer = ht->pListHead;