cvs: ZendEngine2 / zend_compile.c

[email protected] ("Dmitry Stogov")
Newsgroups php.zend-engine.cvs
Message-ID <cvsdmitry1205840235@cvsserver>
dmitry		Tue Mar 18 11:37:15 2008 UTC

  Modified files:              
    /ZendEngine2	zend_compile.c 
  Log:
  Removed hack (we don't need to modify class name).
  (the problem is covered by Zend/tests/ns_056.phpt)
  
  
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_compile.c?r1=1.813&r2=1.814&diff_format=u
Index: ZendEngine2/zend_compile.c
diff -u ZendEngine2/zend_compile.c:1.813 ZendEngine2/zend_compile.c:1.814
--- ZendEngine2/zend_compile.c:1.813	Tue Mar 18 08:36:49 2008
+++ ZendEngine2/zend_compile.c	Tue Mar 18 11:37:15 2008
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_compile.c,v 1.813 2008/03/18 08:36:49 dmitry Exp $ */
+/* $Id: zend_compile.c,v 1.814 2008/03/18 11:37:15 dmitry Exp $ */
 
 #include <zend_language_parser.h>
 #include "zend.h"
@@ -2504,26 +2504,17 @@
 
 			zstr colon;
 
-			if (fe->common.type == ZEND_USER_FUNCTION &&
-			    ((UG(unicode) &&
-			      u_strchr(proto->common.arg_info[i].class_name.u, ':') == NULL &&
-			      (colon.u = u_memrchr(fe->common.arg_info[i].class_name.u, ':', fe->common.arg_info[i].class_name_len)) != NULL &&
-			      fe->common.arg_info[i].class_name_len - (colon.u + 1 - fe->common.arg_info[i].class_name.u) == proto->common.arg_info[i].class_name_len &&
-			      zend_u_binary_strcasecmp(colon.u + 1, proto->common.arg_info[i].class_name_len, proto->common.arg_info[i].class_name.u, proto->common.arg_info[i].class_name_len) == 0) ||
-			     (!UG(unicode) &&
-			      strchr(proto->common.arg_info[i].class_name.s, ':') == NULL &&
-			      (colon.s = zend_memrchr(fe->common.arg_info[i].class_name.s, ':', fe->common.arg_info[i].class_name_len)) != NULL &&
-			      fe->common.arg_info[i].class_name_len - (colon.s + 1 - fe->common.arg_info[i].class_name.s) == proto->common.arg_info[i].class_name_len &&
-			      zend_binary_strcasecmp(colon.s + 1, proto->common.arg_info[i].class_name_len, proto->common.arg_info[i].class_name.s, proto->common.arg_info[i].class_name_len) == 0))) {
-
-				efree((char*)fe->common.arg_info[i].class_name.v);
-				if (UG(unicode)) {
-					fe->common.arg_info[i].class_name.u = eustrndup(proto->common.arg_info[i].class_name.u, proto->common.arg_info[i].class_name_len);
-				} else {
-					fe->common.arg_info[i].class_name.s = estrndup(proto->common.arg_info[i].class_name.s, proto->common.arg_info[i].class_name_len);
-				}
-				fe->common.arg_info[i].class_name_len = proto->common.arg_info[i].class_name_len;
-			} else {
+			if (fe->common.type != ZEND_USER_FUNCTION ||
+			    ((!UG(unicode) ||
+			      u_strchr(proto->common.arg_info[i].class_name.u, ':') != NULL ||
+			      (colon.u = u_memrchr(fe->common.arg_info[i].class_name.u, ':', fe->common.arg_info[i].class_name_len)) == NULL ||
+			      fe->common.arg_info[i].class_name_len - (colon.u + 1 - fe->common.arg_info[i].class_name.u) != proto->common.arg_info[i].class_name_len ||
+			      zend_u_binary_strcasecmp(colon.u + 1, proto->common.arg_info[i].class_name_len, proto->common.arg_info[i].class_name.u, proto->common.arg_info[i].class_name_len) != 0) &&
+			     (UG(unicode) ||
+			      strchr(proto->common.arg_info[i].class_name.s, ':') != NULL ||
+			      (colon.s = zend_memrchr(fe->common.arg_info[i].class_name.s, ':', fe->common.arg_info[i].class_name_len)) == NULL ||
+			      fe->common.arg_info[i].class_name_len - (colon.s + 1 - fe->common.arg_info[i].class_name.s) != proto->common.arg_info[i].class_name_len ||
+			      zend_binary_strcasecmp(colon.s + 1, proto->common.arg_info[i].class_name_len, proto->common.arg_info[i].class_name.s, proto->common.arg_info[i].class_name_len) != 0))) {
 				return 0;
 			}
 		}
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.