]> granicus.if.org Git - php/commitdiff
This should be better
authorXinchen Hui <laruence@gmail.com>
Wed, 30 Dec 2015 13:10:05 +0000 (05:10 -0800)
committerXinchen Hui <laruence@gmail.com>
Wed, 30 Dec 2015 13:10:05 +0000 (05:10 -0800)
ext/standard/streamsfuncs.c
main/streams/streams.c

index bc8c8557dee7cc6c92f41bb1ea5250ce118c4027..235a0cb0a0253359d834f44df9f99190ba9b3a35 100644 (file)
@@ -885,7 +885,6 @@ static int parse_context_options(php_stream_context *context, zval *options)
                if (Z_TYPE_P(wval) == IS_ARRAY) {
                    ZEND_HASH_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(wval), okey, oval) {
                                if (okey) {
-                                       ZVAL_DEREF(oval);
                                        php_stream_context_set_option(context, ZSTR_VAL(wkey), ZSTR_VAL(okey), oval);
                                }
                        } ZEND_HASH_FOREACH_END();
index d0f8a44b989e2ace12b422425d76cf485043a6b5..5e2e42a757efd84ca44162d5193d2c983d3463a1 100644 (file)
@@ -2244,9 +2244,8 @@ PHPAPI int php_stream_context_set_option(php_stream_context *context,
                        return FAILURE;
                }
        }
-       if (Z_REFCOUNTED_P(optionvalue)) {
-               Z_ADDREF_P(optionvalue);
-       }
+       ZVAL_DEREF(optionvalue);
+       Z_TRY_ADDREF_P(optionvalue);
        return zend_hash_str_update(Z_ARRVAL_P(wrapperhash), optionname, strlen(optionname), optionvalue) ? SUCCESS : FAILURE;
 }
 /* }}} */