Skip to content

Commit 91d52ec

Browse files
authored
Merge pull request #74 from dreamsxin/issues1660
Renaming a variable
2 parents f58b66c + 35d4d11 commit 91d52ec

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

parser/parser.h

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,28 @@ static int is_empty(const char *program)
3232

3333
static 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

4047
static 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

Comments
 (0)