]> granicus.if.org Git - php/commitdiff
Avoid in-place conversion
authorDmitry Stogov <dmitry@zend.com>
Tue, 27 May 2014 21:29:37 +0000 (01:29 +0400)
committerDmitry Stogov <dmitry@zend.com>
Tue, 27 May 2014 21:29:37 +0000 (01:29 +0400)
ext/date/php_date.c

index 493033b60bb9c68eafa2551fa63ee4d5b1fddab8..37266d17b587e5e09995684ff37509ae19d7f46a 100644 (file)
@@ -4107,8 +4107,7 @@ static int php_date_interval_initialize_from_hash(zval **return_value, php_inter
        do { \
                zval *z_arg = zend_hash_str_find(myht, element, sizeof(element) - 1); \
                if (z_arg) { \
-                       convert_to_long(z_arg); \
-                       (*intobj)->diff->member = (itype)Z_LVAL_P(z_arg); \
+                       (*intobj)->diff->member = (itype)zval_get_long(z_arg); \
                } else { \
                        (*intobj)->diff->member = (itype)def; \
                } \
@@ -4118,8 +4117,9 @@ static int php_date_interval_initialize_from_hash(zval **return_value, php_inter
        do { \
                zval *z_arg = zend_hash_str_find(myht, element, sizeof(element) - 1); \
                if (z_arg) { \
-                       convert_to_string(z_arg); \
-                       DATE_A64I((*intobj)->diff->member, Z_STRVAL_P(z_arg)); \
+                       zend_string *str = zval_get_string(z_arg); \
+                       DATE_A64I((*intobj)->diff->member, str->val); \
+                       STR_RELEASE(str); \
                } else { \
                        (*intobj)->diff->member = -1LL; \
                } \