summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-12-29 12:35:44 +0000
committerMarcus Boerger <helly@php.net>2003-12-29 12:35:44 +0000
commit03e039b19d7fcf7880eb0b56c82661ec6d50bac8 (patch)
tree04db356410b855cc6f78959ada2c2496c60202c2
parent049fda207df613849aa37e6b6f4ea1cc3cf5227f (diff)
downloadphp-git-03e039b19d7fcf7880eb0b56c82661ec6d50bac8.tar.gz
Fix __autoload() with derived classes
-rw-r--r--Zend/zend_execute_API.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index 058e713ff8..36c3cfe77b 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -1131,6 +1131,7 @@ void zend_unset_timeout(TSRMLS_D)
zend_class_entry *zend_fetch_class(char *class_name, uint class_name_len, int fetch_type TSRMLS_DC)
{
zend_class_entry **pce;
+ zend_bool in_autoload;
check_fetch_type:
switch (fetch_type) {
@@ -1156,9 +1157,13 @@ check_fetch_type:
break;
}
+ in_autoload = EG(in_autoload);
+ EG(in_autoload) = 0;
if (zend_lookup_class(class_name, class_name_len, &pce TSRMLS_CC)==FAILURE) {
+ EG(in_autoload) = in_autoload;
zend_error(E_ERROR, "Class '%s' not found", class_name);
}
+ EG(in_autoload) = in_autoload;
return *pce;
}