summaryrefslogtreecommitdiff
path: root/Zend/zend_API.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r--Zend/zend_API.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index 3ec6fac259..6822e299b2 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -242,6 +242,16 @@ ZEND_API inline int add_assoc_long(zval *arg, char *key, long n)
}
+ZEND_API inline int add_assoc_unset(zval *arg, char *key)
+{
+ zval *tmp;
+
+ ALLOC_ZVAL(tmp);
+ tmp->type = IS_UNSET;
+ INIT_PZVAL(tmp);
+ return zend_hash_update(arg->value.ht, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
+}
+
ZEND_API inline int add_assoc_bool(zval *arg, char *key, int b)
{
zval *tmp;
@@ -324,6 +334,17 @@ ZEND_API inline int add_index_long(zval *arg, uint index, long n)
}
+ZEND_API inline int add_index_unset(zval *arg, uint index)
+{
+ zval *tmp;
+
+ ALLOC_ZVAL(tmp);
+ tmp->type = IS_UNSET;
+ INIT_PZVAL(tmp);
+ return zend_hash_index_update(arg->value.ht, index, (void *) &tmp, sizeof(zval *), NULL);
+}
+
+
ZEND_API inline int add_index_bool(zval *arg, uint index, int b)
{
zval *tmp;
@@ -406,6 +427,17 @@ ZEND_API inline int add_next_index_long(zval *arg, long n)
}
+ZEND_API inline int add_next_index_unset(zval *arg)
+{
+ zval *tmp;
+
+ ALLOC_ZVAL(tmp);
+ tmp->type = IS_UNSET;
+ INIT_PZVAL(tmp);
+ return zend_hash_next_index_insert(arg->value.ht, &tmp, sizeof(zval *), NULL);
+}
+
+
ZEND_API inline int add_next_index_bool(zval *arg, int b)
{
zval *tmp;