cvs: ZendEngine2 / zend_execute.c zend_language_parser.y
| From: | Stanislav Malyshev | Date: | Wed, 26 Mar 2003 20:42:23 +0000 |
| Subject: | cvs: ZendEngine2 / zend_execute.c zend_language_parser.y | ||
| Groups: | php.zend-engine.cvs | ||
| Request: | Send a blank email to php-zend-engine-cvs+get-1073@lists.php.net to get a copy of this message | ||
stas Wed Mar 26 15:42:23 2003 EDT
Modified files:
/ZendEngine2 zend_language_parser.y zend_execute.c
Log:
Un-nest namespaces - now namespace X { namespace Y {} } is a parse error
Also refine namespaced includes
Index: ZendEngine2/zend_language_parser.y
diff -u ZendEngine2/zend_language_parser.y:1.104 ZendEngine2/zend_language_parser.y:1.105
--- ZendEngine2/zend_language_parser.y:1.104 Wed Mar 19 16:17:47 2003
+++ ZendEngine2/zend_language_parser.y Wed Mar 26 15:42:23 2003
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_language_parser.y,v 1.104 2003/03/19 21:17:47 andrei Exp $ */
+/* $Id: zend_language_parser.y,v 1.105 2003/03/26 20:42:23 stas Exp $ */
/*
* LALR shift/reduce conflicts and how they are resolved:
@@ -318,7 +318,6 @@
| namespace_const_declaration ';'
| function_declaration_statement
| class_declaration_statement
- | namespace_declaration_statement
;
namespace_var_declaration_list:
Index: ZendEngine2/zend_execute.c
diff -u ZendEngine2/zend_execute.c:1.447 ZendEngine2/zend_execute.c:1.448
--- ZendEngine2/zend_execute.c:1.447 Wed Mar 26 02:44:09 2003
+++ ZendEngine2/zend_execute.c Wed Mar 26 15:42:23 2003
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute.c,v 1.447 2003/03/26 07:44:09 sebastian Exp $ */
+/* $Id: zend_execute.c,v 1.448 2003/03/26 20:42:23 stas Exp $ */
#define ZEND_INTENSIVE_DEBUGGING 0
@@ -3380,7 +3380,7 @@
}
if (zend_hash_add(&EG(included_files), file_handle.opened_path,
strlen(file_handle.opened_path)+1, (void *)&dummy, sizeof(int), NULL)==SUCCESS) {
- CG(active_namespace) = EG(active_namespace);
+ CG(active_namespace) = EG(global_namespace_ptr);
new_op_array = zend_compile_file(&file_handle,
(EX(opline)->op2.u.constant.value.lval==ZEND_INCLUDE_ONCE?ZEND_INCLUDE:ZEND_REQUIRE) TSRMLS_CC);
zend_destroy_file_handle(&file_handle TSRMLS_CC);
} else {
@@ -3399,13 +3399,13 @@
break;
case ZEND_INCLUDE:
case ZEND_REQUIRE:
- CG(active_namespace) = EG(active_namespace);
+ CG(active_namespace) = EG(global_namespace_ptr);
new_op_array = compile_filename(EX(opline)->op2.u.constant.value.lval, inc_filename
TSRMLS_CC);
break;
case ZEND_EVAL: {
char *eval_desc = zend_make_compiled_string_description("eval()'d code"
TSRMLS_CC);
- CG(active_namespace) = EG(active_namespace);
+ CG(active_namespace) = EG(global_namespace_ptr);
new_op_array = compile_string(inc_filename, eval_desc TSRMLS_CC);
efree(eval_desc);
}
@@ -3431,12 +3431,12 @@
EX(function_state).function = (zend_function *) new_op_array;
EX(object) = NULL;
+ EG(active_namespace) = EG(global_namespace_ptr);
zend_execute(new_op_array TSRMLS_CC);
- if(EG(active_namespace) != active_namespace) {
- zend_switch_namespace(active_namespace TSRMLS_CC);
- }
+ zend_switch_namespace(active_namespace TSRMLS_CC);
+
EX(function_state).function = saved_function;
EX(object) = saved_object;