Skip to content

File tree

2 files changed

+6
-55
lines changed

2 files changed

+6
-55
lines changed

Zend/zend_API.c

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2145,46 +2145,6 @@ ZEND_API zend_result array_set_zval_key(HashTable *ht, zval *key, zval *value) /
21452145
}
21462146
/* }}} */
21472147

2148-
ZEND_API void add_property_resource_ex(zval *arg, const char *key, size_t key_len, zend_resource *r) /* {{{ */
2149-
{
2150-
zval tmp;
2151-
2152-
ZVAL_RES(&tmp, r);
2153-
add_property_zval_ex(arg, key, key_len, &tmp);
2154-
zval_ptr_dtor(&tmp); /* write_property will add 1 to refcount */
2155-
}
2156-
/* }}} */
2157-
2158-
ZEND_API void add_property_array_ex(zval *arg, const char *key, size_t key_len, zend_array *arr) /* {{{ */
2159-
{
2160-
zval tmp;
2161-
2162-
ZVAL_ARR(&tmp, arr);
2163-
add_property_zval_ex(arg, key, key_len, &tmp);
2164-
zval_ptr_dtor(&tmp); /* write_property will add 1 to refcount */
2165-
}
2166-
/* }}} */
2167-
2168-
ZEND_API void add_property_object_ex(zval *arg, const char *key, size_t key_len, zend_object *obj) /* {{{ */
2169-
{
2170-
zval tmp;
2171-
2172-
ZVAL_OBJ(&tmp, obj);
2173-
add_property_zval_ex(arg, key, key_len, &tmp);
2174-
zval_ptr_dtor(&tmp); /* write_property will add 1 to refcount */
2175-
}
2176-
/* }}} */
2177-
2178-
ZEND_API void add_property_reference_ex(zval *arg, const char *key, size_t key_len, zend_reference *ref) /* {{{ */
2179-
{
2180-
zval tmp;
2181-
2182-
ZVAL_REF(&tmp, ref);
2183-
add_property_zval_ex(arg, key, key_len, &tmp);
2184-
zval_ptr_dtor(&tmp); /* write_property will add 1 to refcount */
2185-
}
2186-
/* }}} */
2187-
21882148
ZEND_API zend_result zend_startup_module_ex(zend_module_entry *module) /* {{{ */
21892149
{
21902150
size_t name_len;

Zend/zend_API.h

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -559,22 +559,13 @@ static zend_always_inline void add_property_stringl(zval *z_object, const char *
559559
static zend_always_inline void add_property_stringl_ex(zval *z_object, const char *name, size_t name_length, const char *value, size_t value_len) {
560560
zend_update_property_stringl(Z_OBJCE_P(z_object), Z_OBJ_P(z_object), name, name_length, value, value_len);
561561
}
562+
/* Resource variant only has non ex version as it is rarely used */
563+
static zend_always_inline void add_property_resource(zval *z_object, const char *name, zend_resource *resource) {
564+
zval tmp;
562565

563-
ZEND_API void add_property_resource_ex(zval *arg, const char *key, size_t key_len, zend_resource *r);
564-
ZEND_API void add_property_array_ex(zval *arg, const char *key, size_t key_len, zend_array *arr);
565-
ZEND_API void add_property_object_ex(zval *arg, const char *key, size_t key_len, zend_object *obj);
566-
ZEND_API void add_property_reference_ex(zval *arg, const char *key, size_t key_len, zend_reference *ref);
567-
static zend_always_inline void add_property_resource(zval *arg, const char *key, zend_resource *r) {
568-
add_property_resource_ex(arg, key, strlen(key), r);
569-
}
570-
static zend_always_inline void add_property_array(zval *arg, const char *key, zend_array *arr) {
571-
add_property_array_ex(arg, key, strlen(key), arr);
572-
}
573-
static zend_always_inline void add_property_object(zval *arg, const char *key, zend_object *obj) {
574-
add_property_object_ex(arg, key, strlen(key), obj);
575-
}
576-
static zend_always_inline void add_property_reference(zval *arg, const char *key, zend_reference *ref) {
577-
add_property_reference_ex(arg, key, strlen(key), ref);
566+
ZVAL_RES(&tmp, resource);
567+
zend_update_property(Z_OBJCE_P(z_object), Z_OBJ_P(z_object), name, strlen(name), &tmp);
568+
zval_ptr_dtor(&tmp); /* Updating property will increase refcount by 1 */
578569
}
579570

580571
ZEND_API zend_result zend_update_static_property_ex(zend_class_entry *scope, zend_string *name, zval *value);

0 commit comments

Comments
 (0)