]> granicus.if.org Git - php/commitdiff
Fixed handling of FILTER_FORCE_ARRAY
authorIlia Alshanetsky <iliaa@php.net>
Tue, 3 Oct 2006 15:34:50 +0000 (15:34 +0000)
committerIlia Alshanetsky <iliaa@php.net>
Tue, 3 Oct 2006 15:34:50 +0000 (15:34 +0000)
ext/filter/filter.c

index 2ba5da0db156875f9bc2fd7e4caed1bdb54f056c..28a672060fa2540498ec33957447e03125c0b68e 100644 (file)
@@ -570,12 +570,17 @@ static void php_filter_call(zval **filtered, long filter, zval **filter_args, co
 
        php_zval_filter(filtered, filter, filter_flags, options, charset, copy TSRMLS_CC);
        if (filter_flags & FILTER_FORCE_ARRAY) {
-               zval *temp_array;
+               zval *tmp;
 
-               ALLOC_INIT_ZVAL(temp_array);
-               array_init(temp_array);
-               add_next_index_zval(temp_array, *filtered);
-               *filtered = temp_array;
+               ALLOC_ZVAL(tmp);
+               *tmp = **filtered;
+               zval_copy_ctor(tmp);
+               INIT_PZVAL(tmp);
+
+               zval_dtor(*filtered);
+
+               array_init(*filtered);
+               add_next_index_zval(*filtered, tmp);
        }
 }
 /* }}} */