andrei          Tue Jul 18 17:52:45 2006 UTC

  Modified files:              
    /ZendEngine2        zend_API.c zend_builtin_functions.c zend_compile.h 
                        zend_execute.c zend_execute.h zend_execute_API.c 
                        zend_language_scanner.l zend_operators.c 
                        zend_unicode.c 
    /php-src/ext/reflection     php_reflection.c 
  Log:
  Callable checks and class fetching and lookup should support identifer
  normalization now. (Marcus, Andrei)
  
  
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_API.c?r1=1.379&r2=1.380&diff_format=u
Index: ZendEngine2/zend_API.c
diff -u ZendEngine2/zend_API.c:1.379 ZendEngine2/zend_API.c:1.380
--- ZendEngine2/zend_API.c:1.379        Mon Jul 17 20:52:12 2006
+++ ZendEngine2/zend_API.c      Tue Jul 18 17:52:44 2006
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_API.c,v 1.379 2006/07/17 20:52:12 andrei Exp $ */
+/* $Id: zend_API.c,v 1.380 2006/07/18 17:52:44 andrei Exp $ */
 
 #include "zend.h"
 #include "zend_execute.h"
@@ -2578,10 +2578,9 @@
 static int zend_is_callable_check_func(int check_flags, zval ***zobj_ptr_ptr, 
zend_class_entry *ce_org, zval *callable, zend_class_entry **ce_ptr, 
zend_function **fptr_ptr TSRMLS_DC)
 {
        int retval;
-       zstr lcname, lmname, mname, colon;
+       zstr lmname, mname, colon;
        unsigned int clen, mlen;
        zend_function *fptr;
-       zend_class_entry **pce;
        HashTable *ftable;
 
        *ce_ptr = NULL;
@@ -2601,18 +2600,7 @@
                }
        }
        if (colon.v != NULL) {
-               lcname = zend_u_str_case_fold(Z_TYPE_P(callable), 
Z_UNIVAL_P(callable), clen, 0, &clen);
-               /* caution: lcname is not '\0' terminated */
-               if (clen == sizeof("self") - 1 &&
-                   ZEND_U_EQUAL(Z_TYPE_P(callable), lcname, clen, "self", 
sizeof("self")-1)) {
-                       *ce_ptr = EG(scope);
-               } else if (clen == sizeof("parent") - 1 &&
-                   ZEND_U_EQUAL(Z_TYPE_P(callable), lcname, clen, "parent", 
sizeof("parent")-1)) {
-                       *ce_ptr = EG(scope) ? EG(scope)->parent : NULL;
-               } else if (zend_u_lookup_class(Z_TYPE_P(callable), 
Z_UNIVAL_P(callable), clen, &pce TSRMLS_CC) == SUCCESS) {
-                       *ce_ptr = *pce;
-               }
-               efree(lcname.v);
+               *ce_ptr = zend_u_fetch_class(Z_TYPE_P(callable), 
Z_UNIVAL_P(callable), clen, ZEND_FETCH_CLASS_AUTO TSRMLS_CC);
                if (!*ce_ptr) {
                        return 0;
                }
@@ -2620,9 +2608,9 @@
                if (ce_org && !instanceof_function(ce_org, *ce_ptr TSRMLS_CC)) {
                        return 0;
                }
-               lmname = zend_u_str_case_fold(Z_TYPE_P(callable), mname, mlen, 
0, &mlen);
+               lmname = zend_u_str_case_fold(Z_TYPE_P(callable), mname, mlen, 
1, &mlen);
        } else {
-               lmname = zend_u_str_case_fold(Z_TYPE_P(callable), 
Z_UNIVAL_P(callable), Z_UNILEN_P(callable), 0, &mlen);
+               lmname = zend_u_str_case_fold(Z_TYPE_P(callable), 
Z_UNIVAL_P(callable), Z_UNILEN_P(callable), 1, &mlen);
                if (ce_org) {
                        ftable = &ce_org->function_table;
                        *ce_ptr = ce_org;
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_builtin_functions.c?r1=1.318&r2=1.319&diff_format=u
Index: ZendEngine2/zend_builtin_functions.c
diff -u ZendEngine2/zend_builtin_functions.c:1.318 
ZendEngine2/zend_builtin_functions.c:1.319
--- ZendEngine2/zend_builtin_functions.c:1.318  Sat Jul 15 19:16:19 2006
+++ ZendEngine2/zend_builtin_functions.c        Tue Jul 18 17:52:44 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_builtin_functions.c,v 1.318 2006/07/15 19:16:19 helly Exp $ */
+/* $Id: zend_builtin_functions.c,v 1.319 2006/07/18 17:52:44 andrei Exp $ */
 
 #include "zend.h"
 #include "zend_API.h"
@@ -702,7 +702,7 @@
 
        convert_to_text_ex(class_name);
 
-       if (zend_u_lookup_class_ex(Z_TYPE_PP(class_name), 
Z_UNIVAL_PP(class_name), Z_UNILEN_PP(class_name), (instance_ce != NULL) ? 1 : 
0, &ce TSRMLS_CC) == FAILURE) {
+       if (zend_u_lookup_class_ex(Z_TYPE_PP(class_name), 
Z_UNIVAL_PP(class_name), Z_UNILEN_PP(class_name), (instance_ce != NULL) ? 1 : 
0, 1, &ce TSRMLS_CC) == FAILURE) {
                retval = 0;
        } else {
                if (only_subclass) {
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_compile.h?r1=1.343&r2=1.344&diff_format=u
Index: ZendEngine2/zend_compile.h
diff -u ZendEngine2/zend_compile.h:1.343 ZendEngine2/zend_compile.h:1.344
--- ZendEngine2/zend_compile.h:1.343    Tue Jun 13 12:56:20 2006
+++ ZendEngine2/zend_compile.h  Tue Jul 18 17:52:44 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_compile.h,v 1.343 2006/06/13 12:56:20 sesser Exp $ */
+/* $Id: zend_compile.h,v 1.344 2006/07/18 17:52:44 andrei Exp $ */
 
 #ifndef ZEND_COMPILE_H
 #define ZEND_COMPILE_H
@@ -615,7 +615,9 @@
 #define ZEND_FETCH_CLASS_GLOBAL                4
 #define ZEND_FETCH_CLASS_AUTO          5
 #define ZEND_FETCH_CLASS_INTERFACE     6
-#define ZEND_FETCH_CLASS_NO_AUTOLOAD 0x80
+#define ZEND_FETCH_CLASS_FLAGS        0xF0
+#define ZEND_FETCH_CLASS_NO_NORMALIZE 0x10
+#define ZEND_FETCH_CLASS_NO_AUTOLOAD  0x80
 
 /* variable parsing type (compile-time) */
 #define ZEND_PARSED_MEMBER                             (1<<0)
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute.c?r1=1.749&r2=1.750&diff_format=u
Index: ZendEngine2/zend_execute.c
diff -u ZendEngine2/zend_execute.c:1.749 ZendEngine2/zend_execute.c:1.750
--- ZendEngine2/zend_execute.c:1.749    Tue Jul 18 09:08:06 2006
+++ ZendEngine2/zend_execute.c  Tue Jul 18 17:52:44 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_execute.c,v 1.749 2006/07/18 09:08:06 dmitry Exp $ */
+/* $Id: zend_execute.c,v 1.750 2006/07/18 17:52:44 andrei Exp $ */
 
 #define ZEND_INTENSIVE_DEBUGGING 0
 
@@ -943,7 +943,7 @@
                                UChar *norm;
                                int norm_len;
 
-                               if (!zend_normalize_identifier(&norm, 
&norm_len, offset_key.u, offset_key_length, 0)) {
+                               if (zend_normalize_identifier(&norm, &norm_len, 
offset_key.u, offset_key_length, 0) == FAILURE) {
                                        zend_error(E_WARNING, "Could not 
normalize identifier: %r", offset_key);
                                } else if (norm != offset_key.u) {
                                        offset_key.u = norm;
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute.h?r1=1.100&r2=1.101&diff_format=u
Index: ZendEngine2/zend_execute.h
diff -u ZendEngine2/zend_execute.h:1.100 ZendEngine2/zend_execute.h:1.101
--- ZendEngine2/zend_execute.h:1.100    Wed May 31 13:02:15 2006
+++ ZendEngine2/zend_execute.h  Tue Jul 18 17:52:44 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_execute.h,v 1.100 2006/05/31 13:02:15 dmitry Exp $ */
+/* $Id: zend_execute.h,v 1.101 2006/07/18 17:52:44 andrei Exp $ */
 
 #ifndef ZEND_EXECUTE_H
 #define ZEND_EXECUTE_H
@@ -71,7 +71,7 @@
 }
 ZEND_API int zend_lookup_class(char *name, int name_length, zend_class_entry 
***ce TSRMLS_DC);
 ZEND_API int zend_u_lookup_class(zend_uchar type, zstr name, int name_length, 
zend_class_entry ***ce TSRMLS_DC);
-ZEND_API int zend_u_lookup_class_ex(zend_uchar type, zstr name, int 
name_length, int use_autoload, zend_class_entry ***ce TSRMLS_DC);
+ZEND_API int zend_u_lookup_class_ex(zend_uchar type, zstr name, int 
name_length, int use_autoload, int do_normalize, zend_class_entry ***ce 
TSRMLS_DC);
 ZEND_API int zend_eval_string(char *str, zval *retval_ptr, char *string_name 
TSRMLS_DC);
 ZEND_API int zend_eval_string_ex(char *str, zval *retval_ptr, char 
*string_name, int handle_exceptions TSRMLS_DC);
 ZEND_API int zend_u_eval_string(zend_uchar type, zstr str, zval *retval_ptr, 
char *string_name TSRMLS_DC);
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute_API.c?r1=1.376&r2=1.377&diff_format=u
Index: ZendEngine2/zend_execute_API.c
diff -u ZendEngine2/zend_execute_API.c:1.376 
ZendEngine2/zend_execute_API.c:1.377
--- ZendEngine2/zend_execute_API.c:1.376        Mon Jul 17 20:52:12 2006
+++ ZendEngine2/zend_execute_API.c      Tue Jul 18 17:52:44 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_execute_API.c,v 1.376 2006/07/17 20:52:12 andrei Exp $ */
+/* $Id: zend_execute_API.c,v 1.377 2006/07/18 17:52:44 andrei Exp $ */
 
 #include <stdio.h>
 #include <signal.h>
@@ -785,7 +785,7 @@
                }
 
                if (Z_TYPE_P(fci->function_name) == IS_UNICODE) {
-                       if ((colon.u = 
u_strstr(Z_USTRVAL_P(fci->function_name), (UChar*)":\0:\0")) != NULL) {
+                       if ((colon.u = 
u_strstr(Z_USTRVAL_P(fci->function_name), u_doublecolon)) != NULL) {
                                fname_len = u_strlen(colon.u+2);
                                clen = Z_USTRLEN_P(fci->function_name) - 
fname_len - 2;
                                fname.u = colon.u + 2;
@@ -800,7 +800,7 @@
                if (colon.v != NULL) {
                        zend_class_entry **pce, *ce_child = NULL;
 
-                       lcname = 
zend_u_str_case_fold(Z_TYPE_P(fci->function_name), 
Z_UNIVAL_P(fci->function_name), clen, 0, &clen);
+                       lcname = 
zend_u_str_case_fold(Z_TYPE_P(fci->function_name), 
Z_UNIVAL_P(fci->function_name), clen, 1, &clen);
                        /* caution: lcname is not '\0' terminated */
                        if (calling_scope && clen == sizeof("self") - 1 && 
                            ZEND_U_EQUAL(Z_TYPE_P(fci->function_name), lcname, 
clen, "self", sizeof("self")-1)) {
@@ -808,7 +808,7 @@
                        } else if (calling_scope && clen == sizeof("parent") - 
1 && 
                            ZEND_U_EQUAL(Z_TYPE_P(fci->function_name), lcname, 
clen, "parent", sizeof("parent")-1)) {
                                ce_child = EG(active_op_array) && 
EG(active_op_array)->scope ? EG(scope)->parent : NULL;
-                       } else if 
(zend_u_lookup_class(Z_TYPE_P(fci->function_name), 
Z_UNIVAL_P(fci->function_name), clen, &pce TSRMLS_CC) == SUCCESS) {
+                       } else if 
(zend_u_lookup_class_ex(Z_TYPE_P(fci->function_name), lcname, clen, 1, 0, &pce 
TSRMLS_CC) == SUCCESS) {
                                ce_child = *pce;
                        }
                        efree(lcname.v);
@@ -1063,7 +1063,7 @@
 }
 
 
-ZEND_API int zend_u_lookup_class_ex(zend_uchar type, zstr name, int 
name_length, int use_autoload, zend_class_entry ***ce TSRMLS_DC)
+ZEND_API int zend_u_lookup_class_ex(zend_uchar type, zstr name, int 
name_length, int use_autoload, int do_normalize, zend_class_entry ***ce 
TSRMLS_DC)
 {
        zval **args[1];
        zval autoload_function;
@@ -1081,10 +1081,17 @@
                return FAILURE;
        }
 
-       lc_name = zend_u_str_case_fold(type, name, name_length, 1, 
&lc_name_len);
+       if (do_normalize) {
+               lc_name = zend_u_str_case_fold(type, name, name_length, 1, 
&lc_name_len);
+       } else {
+               lc_name = name;
+               lc_name_len = name_length;
+       }
 
        if (zend_u_hash_find(EG(class_table), type, lc_name, lc_name_len+1, 
(void **) ce) == SUCCESS) {
-               efree(lc_name.v);
+               if (do_normalize) {
+                       efree(lc_name.v);
+               }
                return SUCCESS;
        }
 
@@ -1092,7 +1099,9 @@
         * (doesn't impact fuctionality of __autoload()
        */
        if (!use_autoload || zend_is_compiling(TSRMLS_C)) {
-               efree(lc_name.v);
+               if (do_normalize) {
+                       efree(lc_name.v);
+               }
                return FAILURE;
        }
 
@@ -1102,7 +1111,9 @@
        }
 
        if (zend_u_hash_add(EG(in_autoload), type, lc_name, lc_name_len+1, 
(void**)&dummy, sizeof(char), NULL) == FAILURE) {
-               efree(lc_name.v);
+               if (do_normalize) {
+                       efree(lc_name.v);
+               }
                return FAILURE;
        }
 
@@ -1144,12 +1155,16 @@
 
        if (retval == FAILURE) {
                EG(exception) = exception;
-               efree(lc_name.v);
+               if (do_normalize) {
+                       efree(lc_name.v);
+               }
                return FAILURE;
        }
 
        if (EG(exception) && exception) {
-               efree(lc_name.v);
+               if (do_normalize) {
+                       efree(lc_name.v);
+               }
                zend_error(E_ERROR, "Function %s(%R) threw an exception of type 
'%v'", ZEND_AUTOLOAD_FUNC_NAME, type, name, Z_OBJCE_P(EG(exception))->name);
                return FAILURE;
        }
@@ -1161,13 +1176,15 @@
        }
 
        retval = zend_u_hash_find(EG(class_table), type, lc_name, lc_name_len + 
1, (void **) ce);
-       efree(lc_name.v);
+       if (do_normalize) {
+               efree(lc_name.v);
+       }
        return retval;
 }
 
 ZEND_API int zend_u_lookup_class(zend_uchar type, zstr name, int name_length, 
zend_class_entry ***ce TSRMLS_DC)
 {
-       return zend_u_lookup_class_ex(type, name, name_length, 1, ce TSRMLS_CC);
+       return zend_u_lookup_class_ex(type, name, name_length, 1, 1, ce 
TSRMLS_CC);
 }
 
 ZEND_API int zend_lookup_class(char *name, int name_length, zend_class_entry 
***ce TSRMLS_DC)
@@ -1546,9 +1563,12 @@
 ZEND_API zend_class_entry *zend_u_fetch_class(zend_uchar type, zstr 
class_name, uint class_name_len, int fetch_type TSRMLS_DC)
 {
        zend_class_entry **pce;
-       int use_autoload = (fetch_type & ZEND_FETCH_CLASS_NO_AUTOLOAD) == 0;
+       int use_autoload = (fetch_type & ZEND_FETCH_CLASS_NO_AUTOLOAD)  ? 0 : 1;
+       int do_normalize = (fetch_type & ZEND_FETCH_CLASS_NO_NORMALIZE) ? 0 : 1;
+       zstr lcname = class_name;
+
+       fetch_type = fetch_type & ~ZEND_FETCH_CLASS_FLAGS;
 
-       fetch_type = fetch_type & ~ZEND_FETCH_CLASS_NO_AUTOLOAD;
 check_fetch_type:
        switch (fetch_type) {
                case ZEND_FETCH_CLASS_SELF:
@@ -1565,15 +1585,22 @@
                        }
                        return EG(scope)->parent;
                case ZEND_FETCH_CLASS_AUTO: {
-                               fetch_type = zend_get_class_fetch_type(type, 
class_name, class_name_len);
+                               if (do_normalize) {
+                                       lcname = zend_u_str_case_fold(type, 
class_name, class_name_len, 1, &class_name_len);
+                               }
+                               fetch_type = zend_get_class_fetch_type(type, 
lcname, class_name_len);
                                if (fetch_type!=ZEND_FETCH_CLASS_DEFAULT) {
+                                       if (do_normalize) {
+                                               efree(lcname.v);
+                                               do_normalize = 0; /* we've 
normalized it already, don't do it twice */
+                                       }
                                        goto check_fetch_type;
                                }
                        }
                        break;
        }
 
-       if (zend_u_lookup_class_ex(type, class_name, class_name_len, 
use_autoload, &pce TSRMLS_CC)==FAILURE) {
+       if (zend_u_lookup_class_ex(type, lcname, class_name_len, use_autoload, 
do_normalize, &pce TSRMLS_CC)==FAILURE) {
                if (use_autoload) {
                        if (fetch_type == ZEND_FETCH_CLASS_INTERFACE) {
                                zend_error(E_ERROR, "Interface '%R' not found", 
type, class_name);
@@ -1581,8 +1608,14 @@
                                zend_error(E_ERROR, "Class '%R' not found", 
type, class_name);
                        }
                }
+               if (lcname.v != class_name.v) {
+                       efree(lcname.v);
+               }
                return NULL;
        } else {
+               if (lcname.v != class_name.v) {
+                       efree(lcname.v);
+               }
                return *pce;
        }
 }
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_language_scanner.l?r1=1.155&r2=1.156&diff_format=u
Index: ZendEngine2/zend_language_scanner.l
diff -u ZendEngine2/zend_language_scanner.l:1.155 
ZendEngine2/zend_language_scanner.l:1.156
--- ZendEngine2/zend_language_scanner.l:1.155   Mon Jun 12 17:06:39 2006
+++ ZendEngine2/zend_language_scanner.l Tue Jul 18 17:52:44 2006
@@ -19,7 +19,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_language_scanner.l,v 1.155 2006/06/12 17:06:39 andrei Exp $ */
+/* $Id: zend_language_scanner.l,v 1.156 2006/07/18 17:52:44 andrei Exp $ */
 
 #define yyleng SCNG(yy_leng)
 #define yytext SCNG(yy_text)
@@ -444,7 +444,7 @@
                efree(Z_USTRVAL_P(zendlval));
                return 0;
        }
-       if (!zend_normalize_identifier(&norm, &norm_len, Z_USTRVAL_P(zendlval), 
Z_USTRLEN_P(zendlval), 0)) {
+       if (zend_normalize_identifier(&norm, &norm_len, Z_USTRVAL_P(zendlval), 
Z_USTRLEN_P(zendlval), 0) == FAILURE) {
                zend_error(E_COMPILE_WARNING, "Could not normalize identifier: 
%r", Z_USTRVAL_P(zendlval));
                efree(Z_USTRVAL_P(zendlval));
                return 0;
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_operators.c?r1=1.251&r2=1.252&diff_format=u
Index: ZendEngine2/zend_operators.c
diff -u ZendEngine2/zend_operators.c:1.251 ZendEngine2/zend_operators.c:1.252
--- ZendEngine2/zend_operators.c:1.251  Tue Jul 18 09:08:06 2006
+++ ZendEngine2/zend_operators.c        Tue Jul 18 17:52:44 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_operators.c,v 1.251 2006/07/18 09:08:06 dmitry Exp $ */
+/* $Id: zend_operators.c,v 1.252 2006/07/18 17:52:44 andrei Exp $ */
 
 #include <ctype.h>
 
@@ -2108,14 +2108,21 @@
        zstr ret;
 
        if (type == IS_UNICODE) {
-               int ret_len;
+               int ret_len = length;
 
                if (normalize) {
-                       zend_normalize_identifier(&ret.u, &ret_len, source.u, 
length, 1);
+                       if (zend_normalize_identifier(&ret.u, &ret_len, 
source.u, length, 1) == FAILURE) {
+                               zend_error(E_NOTICE, "Could not normalize 
identifier");
+                               ret.u = eustrndup(source.u, length);
+                       }
                } else {
                        UErrorCode status = U_ZERO_ERROR;
 
                        zend_case_fold_string(&ret.u, &ret_len, source.u, 
length, U_FOLD_CASE_DEFAULT, &status);
+                       if (U_FAILURE(status)) {
+                               zend_error(E_NOTICE, "Could not case-fold 
string");
+                               ret.u = eustrndup(source.u, length);
+                       }
                }
 
                *new_len = ret_len;
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_unicode.c?r1=1.25&r2=1.26&diff_format=u
Index: ZendEngine2/zend_unicode.c
diff -u ZendEngine2/zend_unicode.c:1.25 ZendEngine2/zend_unicode.c:1.26
--- ZendEngine2/zend_unicode.c:1.25     Wed Jul 12 17:35:06 2006
+++ ZendEngine2/zend_unicode.c  Tue Jul 18 17:52:44 2006
@@ -736,7 +736,7 @@
        if (unorm_quickCheck(ident, ident_len, UNORM_NFKC, &status) != 
UNORM_YES) {
                zend_normalize_string(&buffer, &buffer_len, ident, ident_len, 
&status);
                if (U_FAILURE(status)) {
-                       return 0;
+                       return FAILURE;
                }
                ident = buffer;
                ident_len = buffer_len;
@@ -748,7 +748,7 @@
                        efree(ident);
                }
                if (U_FAILURE(status)) {
-                       return 0;
+                       return FAILURE;
                }
                ident = buffer;
                ident_len = buffer_len;
@@ -759,7 +759,7 @@
                                efree(ident);
                        }
                        if (U_FAILURE(status)) {
-                               return 0;
+                               return FAILURE;
                        }
                        ident = buffer;
                        ident_len = buffer_len;
@@ -768,7 +768,7 @@
 
        *dest = ident;
        *dest_len = ident_len;
-       return 1;
+       return SUCCESS;
 }
 /* }}} */
 
http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.243&r2=1.244&diff_format=u
Index: php-src/ext/reflection/php_reflection.c
diff -u php-src/ext/reflection/php_reflection.c:1.243 
php-src/ext/reflection/php_reflection.c:1.244
--- php-src/ext/reflection/php_reflection.c:1.243       Thu Jul 13 12:34:30 2006
+++ php-src/ext/reflection/php_reflection.c     Tue Jul 18 17:52:45 2006
@@ -20,7 +20,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_reflection.c,v 1.243 2006/07/13 12:34:30 tony2001 Exp $ */
+/* $Id: php_reflection.c,v 1.244 2006/07/18 17:52:45 andrei Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -1972,7 +1972,7 @@
        GET_REFLECTION_OBJECT_PTR(param);
 
        if (param->arg_info->class_name.v) {
-               if (zend_u_lookup_class_ex(UG(unicode)?IS_UNICODE:IS_STRING, 
param->arg_info->class_name, param->arg_info->class_name_len, 1, &pce 
TSRMLS_CC) == FAILURE) {
+               if (zend_u_lookup_class_ex(UG(unicode)?IS_UNICODE:IS_STRING, 
param->arg_info->class_name, param->arg_info->class_name_len, 1, 1, &pce 
TSRMLS_CC) == FAILURE) {
                        zend_throw_exception_ex(reflection_exception_ptr, 0 
TSRMLS_CC, 
                                "Class %v does not exist", 
param->arg_info->class_name);
                        return;
@@ -4838,7 +4838,7 @@
        php_info_print_table_start();
        php_info_print_table_header(2, "Reflection", "enabled");
 
-       php_info_print_table_row(2, "Version", "$Id: php_reflection.c,v 1.243 
2006/07/13 12:34:30 tony2001 Exp $");
+       php_info_print_table_row(2, "Version", "$Id: php_reflection.c,v 1.244 
2006/07/18 17:52:45 andrei Exp $");
 
        php_info_print_table_end();
 } /* }}} */

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to