summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_API.c21
-rw-r--r--Zend/zend_API.h2
2 files changed, 23 insertions, 0 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index b34ddce287..d338f72521 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -611,6 +611,27 @@ ZEND_API inline int add_property_long(zval *arg, char *key, long n)
return zend_hash_update(arg->value.obj.properties, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
}
+ZEND_API inline int add_property_bool(zval *arg, char *key, int b)
+{
+ zval *tmp;
+
+ ALLOC_ZVAL(tmp);
+ tmp->type = IS_BOOL;
+ tmp->value.lval = b;
+ INIT_PZVAL(tmp);
+ return zend_hash_update(arg->value.obj.properties, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
+}
+
+ZEND_API inline int add_property_unset(zval *arg, char *key)
+{
+ zval *tmp;
+
+ ALLOC_ZVAL(tmp);
+ tmp->type = IS_NULL;
+ INIT_PZVAL(tmp);
+ return zend_hash_update(arg->value.obj.properties, key, strlen(key)+1, (void *) &tmp, sizeof(zval *), NULL);
+}
+
ZEND_API inline int add_property_resource(zval *arg, char *key, long n)
{
zval *tmp;
diff --git a/Zend/zend_API.h b/Zend/zend_API.h
index ff357ca153..019361b322 100644
--- a/Zend/zend_API.h
+++ b/Zend/zend_API.h
@@ -132,6 +132,8 @@ ZEND_API int call_user_function(HashTable *function_table, zval *object, zval *f
ZEND_API int call_user_function_ex(HashTable *function_table, zval *object, zval *function_name, zval **retval_ptr_ptr, int param_count, zval **params[], int no_separation);
ZEND_API int add_property_long(zval *arg, char *key, long l);
+ZEND_API int add_property_unset(zval *arg, char *key);
+ZEND_API int add_property_bool(zval *arg, char *key, int b);
ZEND_API int add_property_resource(zval *arg, char *key, long r);
ZEND_API int add_property_double(zval *arg, char *key, double d);
ZEND_API int add_property_string(zval *arg, char *key, char *str, int duplicate);