@@ -33,13 +33,15 @@ static int is_empty(const char *program)
3333static void parser_add_str (zval * arr , const char * key , const char * val ) {
3434 zval tmp ;
3535 zend_string * tmp_str ;
36+
3637 if (!strcmp (val , "return_value" )) {
3738 tmp_str = zend_string_init ("_zephir_return_value" , strlen ("_zephir_return_value" ), 0 );
3839 } else if (!strcmp (val , "this_ptr" )) {
3940 tmp_str = zend_string_init ("_zephir_this_ptr" , strlen ("_zephir_this_ptr" ), 0 );
4041 } else {
4142 tmp_str = zend_string_init (val , strlen (val ), 0 );
4243 }
44+
4345 ZVAL_STR (& tmp , tmp_str );
4446 zend_hash_str_add (Z_ARRVAL_P (arr ), key , strlen (key ), & tmp );
4547}
@@ -894,6 +896,18 @@ static void xx_ret_return_statement(zval *ret, zval *expr, xx_scanner_state *sta
894896 parser_add_int (ret , "char" , state -> active_char );
895897}
896898
899+ static void xx_ret_require_once_statement (zval * ret , zval * expr , xx_scanner_state * state )
900+ {
901+ array_init (ret );
902+
903+ parser_add_str (ret , "type" , "require_once" );
904+ parser_add_zval (ret , "expr" , expr );
905+
906+ parser_add_str (ret , "file" , state -> active_file );
907+ parser_add_int (ret , "line" , state -> active_line );
908+ parser_add_int (ret , "char" , state -> active_char );
909+ }
910+
897911static void xx_ret_require_statement (zval * ret , zval * expr , xx_scanner_state * state )
898912{
899913 array_init (ret );
@@ -1046,7 +1060,7 @@ static void xx_ret_declare_variable(zval *ret, xx_parser_token *T, zval *expr, x
10461060 array_init (ret );
10471061
10481062 parser_add_str_free (ret , "variable" , T -> token );
1049-
1063+
10501064 efree (T );
10511065
10521066 if (expr ) {
0 commit comments