summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2010-07-14 02:21:38 +0000
committerFelipe Pena <felipe@php.net>2010-07-14 02:21:38 +0000
commit5e04ca2e54176d3cb43192e26ab830ff51c81b1c (patch)
tree6fc3d5a7690813c059b27170a1b83460bf89a271
parent5f5486b706a575239c73e6d27b18d43ce837bae1 (diff)
downloadphp-git-5e04ca2e54176d3cb43192e26ab830ff51c81b1c.tar.gz
- Disable error recovery
-rw-r--r--Zend/zend_compile.c12
-rw-r--r--Zend/zend_language_parser.y1
2 files changed, 6 insertions, 7 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index b502deb254..f7578ad92a 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -6167,24 +6167,22 @@ again:
zend_lang_parse(pParser, token, zendlval TSRMLS_CC);
CG(zend_lineno) = lineno;
- if (token == 0) {
+ if (token == 0 || EG(exit_status) == 255) {
break;
- } else if (EG(exit_status) == 255 || (halting == 1 && token == T_SEMICOLON)) {
- /* Handles E_PARSE and __HALT_COMPILER(); */
+ } else if (halting == 1 && token == T_SEMICOLON){
+ /* Handles __HALT_COMPILER(); */
zend_lang_parse(pParser, 0, zendlval TSRMLS_CC);
- if (EG(exit_status) == 255) {
- goto end_parse;
- }
break;
}
}
-end_parse:
zend_lang_parseFree(pParser, free);
+
if (EG(exit_status) == 255) {
/* We got an E_PARSE */
return 1;
}
EG(exit_status) = old_exit_status;
+
return 0;
}
/* }}} */
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y
index 21436f80fd..cf87380aac 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -30,6 +30,7 @@
#include "zend_API.h"
#include "zend_constants.h"
+#define YYNOERRORRECOVERY
#define NDEBUG
}