diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2003-11-29 19:05:14 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2003-11-29 19:05:14 +0000 |
commit | 99dec6927cba10e7c3352b191ac4297a3f61f25c (patch) | |
tree | fa4527843ab6dfbe326ea8c0279203771a86f259 /ext/tokenizer/tokenizer.c | |
parent | bfa36a8ea7b73f52db3f47b840661d1870d2253c (diff) | |
download | php-git-99dec6927cba10e7c3352b191ac4297a3f61f25c.tar.gz |
Fixed bug #26463 (Incorrect handling of semicolons after heredoc)
Diffstat (limited to 'ext/tokenizer/tokenizer.c')
-rw-r--r-- | ext/tokenizer/tokenizer.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/ext/tokenizer/tokenizer.c b/ext/tokenizer/tokenizer.c index 5c7346c4ba..e4c0678ec2 100644 --- a/ext/tokenizer/tokenizer.c +++ b/ext/tokenizer/tokenizer.c @@ -361,7 +361,12 @@ static void tokenize(zval *return_value TSRMLS_DC) MAKE_STD_ZVAL(keyword); array_init(keyword); add_next_index_long(keyword, token_type); - add_next_index_stringl(keyword, zendtext, zendleng, 1); + if (token_type == T_END_HEREDOC) { + add_next_index_stringl(keyword, Z_STRVAL(token), Z_STRLEN(token), 1); + efree(Z_STRVAL(token)); + } else { + add_next_index_stringl(keyword, zendtext, zendleng, 1); + } add_next_index_zval(return_value, keyword); } else { add_next_index_stringl(return_value, zendtext, zendleng, 1); @@ -369,9 +374,6 @@ static void tokenize(zval *return_value TSRMLS_DC) if (destroy && Z_TYPE(token) != IS_NULL) { zval_dtor(&token); } - if (token_type == T_END_HEREDOC) { - efree(Z_STRVAL(token)); - } ZVAL_NULL(&token); } } |