zval **stack, /* Input stack */
**val; /* Value to be popped */
char *key = NULL;
- int key_len;
+ int key_len = 0;
ulong index;
/* Get the arguments and do error-checking */
/* If we did a shift... re-index like it did before */
if (!off_the_end) {
- HANDLE_BLOCK_INTERRUPTIONS();
- {
- int k = 0;
- Bucket *p = Z_ARRVAL_PP(stack)->pListHead;
- while (p != NULL) {
- if (p->nKeyLength == 0)
- p->h = k++;
- p = p->pListNext;
- }
- Z_ARRVAL_PP(stack)->nNextFreeElement = k+1;
- zend_hash_rehash(Z_ARRVAL_PP(stack));
+ int k = 0;
+ Bucket *p = Z_ARRVAL_PP(stack)->pListHead;
+ while (p != NULL) {
+ if (p->nKeyLength == 0)
+ p->h = k++;
+ p = p->pListNext;
}
- HANDLE_UNBLOCK_INTERRUPTIONS();
+ Z_ARRVAL_PP(stack)->nNextFreeElement = k+1;
+ } else if(!key_len) {
+ Z_ARRVAL_PP(stack)->nNextFreeElement = Z_ARRVAL_PP(stack)->nNextFreeElement - 1;
}
}
/* }}} */