@@ -32,14 +32,28 @@ static int is_empty(const char *program)
3232
3333static void parser_add_str (zval * arr , const char * key , const char * val ) {
3434 zval tmp ;
35- zend_string * tmp_str = zend_string_init (val , strlen (val ), 0 );
35+ zend_string * tmp_str ;
36+ if (!strcmp (val , "return_value" )) {
37+ tmp_str = zend_string_init ("_zephir_return_value" , strlen ("_zephir_return_value" ), 0 );
38+ } else if (!strcmp (val , "this_ptr" )) {
39+ tmp_str = zend_string_init ("_zephir_this_ptr" , strlen ("_zephir_this_ptr" ), 0 );
40+ } else {
41+ tmp_str = zend_string_init (val , strlen (val ), 0 );
42+ }
3643 ZVAL_STR (& tmp , tmp_str );
3744 zend_hash_str_add (Z_ARRVAL_P (arr ), key , strlen (key ), & tmp );
3845}
3946
4047static void parser_add_str_free (zval * arr , const char * key , char * val ) {
4148 zval tmp ;
42- zend_string * tmp_str = zend_string_init (val , strlen (val ), 0 );
49+ zend_string * tmp_str ;
50+ if (!strcmp (val , "return_value" )) {
51+ tmp_str = zend_string_init ("_zephir_return_value" , strlen ("_zephir_return_value" ), 0 );
52+ } else if (!strcmp (val , "this_ptr" )) {
53+ tmp_str = zend_string_init ("_zephir_this_ptr" , strlen ("_zephir_this_ptr" ), 0 );
54+ } else {
55+ tmp_str = zend_string_init (val , strlen (val ), 0 );
56+ }
4357 ZVAL_STR (& tmp , tmp_str );
4458 zend_hash_str_add (Z_ARRVAL_P (arr ), key , strlen (key ), & tmp );
4559 efree (val );
@@ -1032,6 +1046,7 @@ static void xx_ret_declare_variable(zval *ret, xx_parser_token *T, zval *expr, x
10321046 array_init (ret );
10331047
10341048 parser_add_str_free (ret , "variable" , T -> token );
1049+
10351050 efree (T );
10361051
10371052 if (expr ) {
0 commit comments