zval *new_zval = &EG(uninitialized_zval);
new_zval->refcount++;
- zend_hash_next_index_insert(container->value.ht, &new_zval, sizeof(zval *), (void **) retval);
+ if (zend_hash_next_index_insert(container->value.ht, &new_zval, sizeof(zval *), (void **) retval) == FAILURE) {
+ zend_error(E_WARNING, "Cannot add element to the array as the nexxt element is already occupied");
+ *retval = &EG(uninitialized_zval_ptr);
+ new_zval->refcount--;
+ }
} else {
*retval = zend_fetch_dimension_address_inner(container->value.ht, op2, Ts, type TSRMLS_CC);
}
}
UPDATE_DATA(ht, p, pData, nDataSize);
HANDLE_UNBLOCK_INTERRUPTIONS();
- if (h >= ht->nNextFreeElement) {
+ if ((long)h >= (long)ht->nNextFreeElement) {
ht->nNextFreeElement = h + 1;
}
if (pDest) {
CONNECT_TO_GLOBAL_DLLIST(p, ht);
HANDLE_UNBLOCK_INTERRUPTIONS();
- if (h >= ht->nNextFreeElement) {
+ if ((long)h >= (long)ht->nNextFreeElement) {
ht->nNextFreeElement = h + 1;
}
ht->nNumOfElements++;