if (mode & HASH_UPDATE_KEY_IF_BEFORE) {
break;
} else {
- zend_hash_index_del(ht, p->h);
+ if (p->nKeyLength) {
+ zend_u_hash_del(ht, p->key.type, ZSTR(p->key.arKey.s), p->nKeyLength);
+ } else {
+ zend_hash_index_del(ht, p->h);
+ }
return FAILURE;
}
} else {
if (mode & HASH_UPDATE_KEY_IF_AFTER) {
break;
} else {
- zend_hash_index_del(ht, p->h);
+ if (p->nKeyLength) {
+ zend_u_hash_del(ht, p->key.type, ZSTR(p->key.arKey.s), p->nKeyLength);
+ } else {
+ zend_hash_index_del(ht, p->h);
+ }
return FAILURE;
}
}
if (mode & HASH_UPDATE_KEY_IF_BEFORE) {
break;
} else {
- zend_u_hash_del(ht, p->key.type, ZSTR(p->key.arKey.s), p->nKeyLength);
+ if (p->nKeyLength) {
+ zend_u_hash_del(ht, p->key.type, ZSTR(p->key.arKey.s), p->nKeyLength);
+ } else {
+ zend_hash_index_del(ht, p->h);
+ }
return FAILURE;
}
} else {
if (mode & HASH_UPDATE_KEY_IF_AFTER) {
break;
} else {
- zend_u_hash_del(ht, p->key.type, ZSTR(p->key.arKey.s), p->nKeyLength);
+ if (p->nKeyLength) {
+ zend_u_hash_del(ht, p->key.type, ZSTR(p->key.arKey.s), p->nKeyLength);
+ } else {
+ zend_hash_index_del(ht, p->h);
+ }
return FAILURE;
}
}