From 3e45b237994bc930359ceded96d9d86768222ca5 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev Date: Sun, 16 Feb 2003 13:27:33 +0000 Subject: [PATCH] add support for ::foo syntax meaning "global one" --- Zend/zend_compile.c | 9 +++++++-- Zend/zend_language_parser.y | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 4eb9901b4f..6b76589f7e 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1167,8 +1167,13 @@ void do_fetch_class(znode *result, znode *namespace_name, znode *class_name TSRM SET_UNUSED(opline->op1); CG(catch_begin) = fetch_class_op_number; } - zend_str_tolower(class_name->u.constant.value.str.val, class_name->u.constant.value.str.len); - if ((class_name->u.constant.value.str.len == (sizeof("self") - 1)) && + if(class_name) { + zend_str_tolower(class_name->u.constant.value.str.val, class_name->u.constant.value.str.len); + } + if(class_name == NULL) { + SET_UNUSED(opline->op2); + opline->extended_value = ZEND_FETCH_CLASS_MAIN; + } else if ((class_name->u.constant.value.str.len == (sizeof("self") - 1)) && !memcmp(class_name->u.constant.value.str.val, "self", sizeof("self"))) { SET_UNUSED(opline->op2); opline->extended_value = ZEND_FETCH_CLASS_SELF; diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 3d2ebd601f..b394f0a89e 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -625,6 +625,7 @@ function_call: parse_class_entry: T_NAMESPACE_NAME T_PAAMAYIM_NEKUDOTAYIM T_STRING T_PAAMAYIM_NEKUDOTAYIM { do_fetch_class(&$$, &$1, &$3 TSRMLS_CC); } | T_STRING T_PAAMAYIM_NEKUDOTAYIM { do_fetch_class(&$$, NULL, &$1 TSRMLS_CC); } + | T_PAAMAYIM_NEKUDOTAYIM { do_fetch_class(&$$, NULL, NULL TSRMLS_CC); } ; catch_class_entry: -- 2.50.1