Skip to content

Commit 493f830

Browse files
committed
Reuse add_property_zval_ex() instead of code duplication
1 parent d356f6d commit 493f830

File tree

1 file changed

+8
-36
lines changed

1 file changed

+8
-36
lines changed

Zend/zend_API.c

Lines changed: 8 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1645,107 +1645,79 @@ ZEND_API int array_set_zval_key(HashTable *ht, zval *key, zval *value) /* {{{ */
16451645
ZEND_API int add_property_long_ex(zval *arg, const char *key, size_t key_len, zend_long n) /* {{{ */
16461646
{
16471647
zval tmp;
1648-
zval z_key;
16491648

16501649
ZVAL_LONG(&tmp, n);
1651-
ZVAL_STRINGL(&z_key, key, key_len);
1652-
Z_OBJ_HANDLER_P(arg, write_property)(arg, &z_key, &tmp, NULL);
1653-
zval_ptr_dtor(&z_key);
1654-
return SUCCESS;
1650+
return add_property_zval_ex(arg, key, key_len, &tmp);
16551651
}
16561652
/* }}} */
16571653

16581654
ZEND_API int add_property_bool_ex(zval *arg, const char *key, size_t key_len, zend_long b) /* {{{ */
16591655
{
16601656
zval tmp;
1661-
zval z_key;
16621657

16631658
ZVAL_BOOL(&tmp, b);
1664-
ZVAL_STRINGL(&z_key, key, key_len);
1665-
Z_OBJ_HANDLER_P(arg, write_property)(arg, &z_key, &tmp, NULL);
1666-
zval_ptr_dtor(&z_key);
1667-
return SUCCESS;
1659+
return add_property_zval_ex(arg, key, key_len, &tmp);
16681660
}
16691661
/* }}} */
16701662

16711663
ZEND_API int add_property_null_ex(zval *arg, const char *key, size_t key_len) /* {{{ */
16721664
{
16731665
zval tmp;
1674-
zval z_key;
16751666

16761667
ZVAL_NULL(&tmp);
1677-
ZVAL_STRINGL(&z_key, key, key_len);
1678-
Z_OBJ_HANDLER_P(arg, write_property)(arg, &z_key, &tmp, NULL);
1679-
zval_ptr_dtor(&z_key);
1680-
return SUCCESS;
1668+
return add_property_zval_ex(arg, key, key_len, &tmp);
16811669
}
16821670
/* }}} */
16831671

16841672
ZEND_API int add_property_resource_ex(zval *arg, const char *key, size_t key_len, zend_resource *r) /* {{{ */
16851673
{
16861674
zval tmp;
1687-
zval z_key;
16881675

16891676
ZVAL_RES(&tmp, r);
1690-
ZVAL_STRINGL(&z_key, key, key_len);
1691-
Z_OBJ_HANDLER_P(arg, write_property)(arg, &z_key, &tmp, NULL);
1677+
add_property_zval_ex(arg, key, key_len, &tmp);
16921678
zval_ptr_dtor(&tmp); /* write_property will add 1 to refcount */
1693-
zval_ptr_dtor(&z_key);
16941679
return SUCCESS;
16951680
}
16961681
/* }}} */
16971682

16981683
ZEND_API int add_property_double_ex(zval *arg, const char *key, size_t key_len, double d) /* {{{ */
16991684
{
17001685
zval tmp;
1701-
zval z_key;
17021686

17031687
ZVAL_DOUBLE(&tmp, d);
1704-
ZVAL_STRINGL(&z_key, key, key_len);
1705-
Z_OBJ_HANDLER_P(arg, write_property)(arg, &z_key, &tmp, NULL);
1706-
zval_ptr_dtor(&z_key);
1707-
return SUCCESS;
1688+
return add_property_zval_ex(arg, key, key_len, &tmp);
17081689
}
17091690
/* }}} */
17101691

17111692
ZEND_API int add_property_str_ex(zval *arg, const char *key, size_t key_len, zend_string *str) /* {{{ */
17121693
{
17131694
zval tmp;
1714-
zval z_key;
17151695

17161696
ZVAL_STR(&tmp, str);
1717-
ZVAL_STRINGL(&z_key, key, key_len);
1718-
Z_OBJ_HANDLER_P(arg, write_property)(arg, &z_key, &tmp, NULL);
1697+
add_property_zval_ex(arg, key, key_len, &tmp);
17191698
zval_ptr_dtor(&tmp); /* write_property will add 1 to refcount */
1720-
zval_ptr_dtor(&z_key);
17211699
return SUCCESS;
17221700
}
17231701
/* }}} */
17241702

17251703
ZEND_API int add_property_string_ex(zval *arg, const char *key, size_t key_len, const char *str) /* {{{ */
17261704
{
17271705
zval tmp;
1728-
zval z_key;
17291706

17301707
ZVAL_STRING(&tmp, str);
1731-
ZVAL_STRINGL(&z_key, key, key_len);
1732-
Z_OBJ_HANDLER_P(arg, write_property)(arg, &z_key, &tmp, NULL);
1708+
add_property_zval_ex(arg, key, key_len, &tmp);
17331709
zval_ptr_dtor(&tmp); /* write_property will add 1 to refcount */
1734-
zval_ptr_dtor(&z_key);
17351710
return SUCCESS;
17361711
}
17371712
/* }}} */
17381713

17391714
ZEND_API int add_property_stringl_ex(zval *arg, const char *key, size_t key_len, const char *str, size_t length) /* {{{ */
17401715
{
17411716
zval tmp;
1742-
zval z_key;
17431717

17441718
ZVAL_STRINGL(&tmp, str, length);
1745-
ZVAL_STRINGL(&z_key, key, key_len);
1746-
Z_OBJ_HANDLER_P(arg, write_property)(arg, &z_key, &tmp, NULL);
1719+
add_property_zval_ex(arg, key, key_len, &tmp);
17471720
zval_ptr_dtor(&tmp); /* write_property will add 1 to refcount */
1748-
zval_ptr_dtor(&z_key);
17491721
return SUCCESS;
17501722
}
17511723
/* }}} */

0 commit comments

Comments
 (0)