cvs: ZendEngine2(PHP_5_3) / zend_compile.c zend_compile.h

[email protected] ("Felipe Pena")
Newsgroups php.zend-engine.cvs
Message-ID <cvsfelipe1206468517@cvsserver>
felipe		Tue Mar 25 18:08:37 2008 UTC

  Modified files:              (Branch: PHP_5_3)
    /ZendEngine2	zend_compile.h zend_compile.c 
  Log:
  MFH:
  - Renamed zend_do_fetch_class_name() to zend_do_build_full_name() (It is not used only for classes)
  - Moved zend_resolve_class_name prototype to zend_compile.h
  
  
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_compile.h?r1=1.316.2.8.2.12.2.18&r2=1.316.2.8.2.12.2.19&diff_format=u
Index: ZendEngine2/zend_compile.h
diff -u ZendEngine2/zend_compile.h:1.316.2.8.2.12.2.18 ZendEngine2/zend_compile.h:1.316.2.8.2.12.2.19
--- ZendEngine2/zend_compile.h:1.316.2.8.2.12.2.18	Tue Mar 18 08:36:28 2008
+++ ZendEngine2/zend_compile.h	Tue Mar 25 18:08:37 2008
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_compile.h,v 1.316.2.8.2.12.2.18 2008/03/18 08:36:28 dmitry Exp $ */
+/* $Id: zend_compile.h,v 1.316.2.8.2.12.2.19 2008/03/25 18:08:37 felipe Exp $ */
 
 #ifndef ZEND_COMPILE_H
 #define ZEND_COMPILE_H
@@ -342,6 +342,7 @@
 ZEND_API int zend_get_compiled_lineno(TSRMLS_D);
 ZEND_API int zend_get_scanned_file_offset(TSRMLS_D);
 
+void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_name TSRMLS_DC);
 ZEND_API char* zend_get_compiled_variable_name(zend_op_array *op_array, zend_uint var, int* name_len);
 
 #ifdef ZTS
@@ -409,7 +410,7 @@
 void zend_do_clone(znode *result, znode *expr TSRMLS_DC);
 void zend_do_begin_dynamic_function_call(znode *function_name, int prefix_len TSRMLS_DC);
 void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC);
-void zend_do_fetch_class_name(znode *result, znode *class_entry, znode *class_name TSRMLS_DC);
+void zend_do_build_full_name(znode *result, znode *prefix, znode *name TSRMLS_DC);
 int zend_do_begin_class_member_function_call(znode *class_name, znode *method_name TSRMLS_DC);
 void zend_do_end_function_call(znode *function_name, znode *result, znode *argument_list, int is_method, int is_dynamic_fcall TSRMLS_DC);
 void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC);
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_compile.c?r1=1.647.2.27.2.41.2.54&r2=1.647.2.27.2.41.2.55&diff_format=u
Index: ZendEngine2/zend_compile.c
diff -u ZendEngine2/zend_compile.c:1.647.2.27.2.41.2.54 ZendEngine2/zend_compile.c:1.647.2.27.2.41.2.55
--- ZendEngine2/zend_compile.c:1.647.2.27.2.41.2.54	Fri Mar 21 18:20:07 2008
+++ ZendEngine2/zend_compile.c	Tue Mar 25 18:08:37 2008
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_compile.c,v 1.647.2.27.2.41.2.54 2008/03/21 18:20:07 helly Exp $ */
+/* $Id: zend_compile.c,v 1.647.2.27.2.41.2.55 2008/03/25 18:08:37 felipe Exp $ */
 
 #include <zend_language_parser.h>
 #include "zend.h"
@@ -31,8 +31,6 @@
 ZEND_API zend_op_array *(*zend_compile_file)(zend_file_handle *file_handle, int type TSRMLS_DC);
 ZEND_API zend_op_array *(*zend_compile_string)(zval *source_string, char *filename TSRMLS_DC);
 
-void zend_resolve_class_name(znode *class_name, ulong *fetch_type, int check_ns_name TSRMLS_DC);
-
 #ifndef ZTS
 ZEND_API zend_compiler_globals compiler_globals;
 ZEND_API zend_executor_globals executor_globals;
@@ -1671,21 +1669,21 @@
 }
 
 
-void zend_do_fetch_class_name(znode *result, znode *class_name_entry, znode *class_name TSRMLS_DC)
+void zend_do_build_full_name(znode *result, znode *prefix, znode *name TSRMLS_DC)
 {
 	zend_uint length;
 
 	if (!result) {
-		result = class_name_entry;
+		result = prefix;
 	} else {
-		*result = *class_name_entry;
+		*result = *prefix;
 	}
 
-	length = sizeof("::")-1 + result->u.constant.value.str.len + class_name->u.constant.value.str.len;
+	length = sizeof("::")-1 + result->u.constant.value.str.len + name->u.constant.value.str.len;
 	result->u.constant.value.str.val = erealloc(result->u.constant.value.str.val, length+1);
 	memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len], "::", sizeof("::")-1);
-	memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len + sizeof("::")-1], class_name->u.constant.value.str.val, class_name->u.constant.value.str.len+1);
-	STR_FREE(class_name->u.constant.value.str.val);
+	memcpy(&result->u.constant.value.str.val[result->u.constant.value.str.len + sizeof("::")-1], name->u.constant.value.str.val, name->u.constant.value.str.len+1);
+	STR_FREE(name->u.constant.value.str.val);
 	result->u.constant.value.str.len = length;
 }
 
@@ -3581,7 +3579,7 @@
 				} else if (ZEND_FETCH_CLASS_DEFAULT == type) {
 					zend_resolve_class_name(constant_container, &fetch_type, 1 TSRMLS_CC);
 				}
-				zend_do_fetch_class_name(NULL, constant_container, constant_name TSRMLS_CC);
+				zend_do_build_full_name(NULL, constant_container, constant_name TSRMLS_CC);
 				*result = *constant_container;
 				result->u.constant.type = IS_CONSTANT | fetch_type;
 			} else if (fetch_type || !zend_constant_ct_subst(result, &constant_name->u.constant TSRMLS_CC)) {
@@ -4702,15 +4700,8 @@
 		Z_STRVAL(result->u.constant) = NULL;
 		Z_STRLEN(result->u.constant) = 0;
 	}
-	len = Z_STRLEN(result->u.constant) + 2 + Z_STRLEN(name->u.constant);
-	Z_STRVAL(result->u.constant) = erealloc(Z_STRVAL(result->u.constant), len + 1);
-	Z_STRVAL(result->u.constant)[Z_STRLEN(result->u.constant)] = ':';
-	Z_STRVAL(result->u.constant)[Z_STRLEN(result->u.constant)+1] = ':';
-	memcpy(Z_STRVAL(result->u.constant)+Z_STRLEN(result->u.constant)+2,
-		Z_STRVAL(name->u.constant),
-		Z_STRLEN(name->u.constant)+1);
-	Z_STRLEN(result->u.constant) = len;
-	zval_dtor(&name->u.constant);
+	/* prefix = result */
+	zend_do_build_full_name(NULL, result, name TSRMLS_CC);
 }
 /* }}} */
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.