cvs: ZendEngine2 / zend_execute.h zend_execute_API.c
[email protected] ("Matt Wilmas") Thu, 19 Mar 2009 18:32:46 -0000
| Newsgroups | php.zend-engine.cvs |
|---|---|
| Message-ID | <cvsmattwil1237487565@cvsserver> |
mattwil Thu Mar 19 18:32:46 2009 UTC
Modified files:
/ZendEngine2 zend_execute.h zend_execute_API.c
Log:
MFB (zend_execute_API.c v1.331.2.20.2.13): "Avoid strcpy() & strcat()"
Removed extra space from eval string, and unnecessary variable
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute.h?r1=1.119&r2=1.120&diff_format=u
Index: ZendEngine2/zend_execute.h
diff -u ZendEngine2/zend_execute.h:1.119 ZendEngine2/zend_execute.h:1.120
--- ZendEngine2/zend_execute.h:1.119 Wed Dec 31 11:12:29 2008
+++ ZendEngine2/zend_execute.h Thu Mar 19 18:32:45 2009
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute.h,v 1.119 2008/12/31 11:12:29 sebastian Exp $ */
+/* $Id: zend_execute.h,v 1.120 2009/03/19 18:32:45 mattwil Exp $ */
#ifndef ZEND_EXECUTE_H
#define ZEND_EXECUTE_H
@@ -54,7 +54,6 @@
BEGIN_EXTERN_C()
ZEND_API extern UChar u_main[sizeof("main")];
ZEND_API extern UChar u_return[sizeof("return ")];
-ZEND_API extern UChar u_semicolon[sizeof(" ;")];
ZEND_API extern UChar u_doublecolon[sizeof("::")];
ZEND_API extern void (*zend_execute)(zend_op_array *op_array TSRMLS_DC);
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_execute_API.c?r1=1.474&r2=1.475&diff_format=u
Index: ZendEngine2/zend_execute_API.c
diff -u ZendEngine2/zend_execute_API.c:1.474 ZendEngine2/zend_execute_API.c:1.475
--- ZendEngine2/zend_execute_API.c:1.474 Wed Mar 18 10:49:35 2009
+++ ZendEngine2/zend_execute_API.c Thu Mar 19 18:32:45 2009
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute_API.c,v 1.474 2009/03/18 10:49:35 dmitry Exp $ */
+/* $Id: zend_execute_API.c,v 1.475 2009/03/19 18:32:45 mattwil Exp $ */
#include <stdio.h>
#include <signal.h>
@@ -56,14 +56,12 @@
UChar u_main[sizeof("main")];
UChar u_return[sizeof("return ")];
-UChar u_semicolon[sizeof(" ;")];
-UChar u_doublecolon[sizeof(" ;")];
+UChar u_doublecolon[sizeof("::")];
void init_unicode_strings(void)
{
u_charsToUChars("main", u_main, sizeof("main"));
u_charsToUChars("return ", u_return, sizeof("return "));
- u_charsToUChars(" ;", u_semicolon, sizeof(" ;"));
u_charsToUChars("::", u_doublecolon, sizeof("::"));
}
@@ -1235,11 +1233,13 @@
UChar *str = string.u;
if (retval_ptr) {
- Z_USTRLEN(pv) = u_strlen(str) + sizeof("return ;") - 1;
+ int l = u_strlen(str);
+ Z_USTRLEN(pv) = l + sizeof("return ;") - 1;
Z_USTRVAL(pv) = eumalloc(Z_USTRLEN(pv) + 1);
- u_strcpy(Z_USTRVAL(pv), u_return);
- u_strcat(Z_USTRVAL(pv), str);
- u_strcat(Z_USTRVAL(pv), u_semicolon);
+ u_memcpy(Z_USTRVAL(pv), u_return, sizeof("return ") - 1);
+ u_memcpy(Z_USTRVAL(pv) + sizeof("return ") - 1, str, l);
+ Z_USTRVAL(pv)[Z_USTRLEN(pv) - 1] = 0x3B /*';'*/;
+ Z_USTRVAL(pv)[Z_USTRLEN(pv)] = 0;
} else {
Z_USTRLEN(pv) = u_strlen(str);
Z_USTRVAL(pv) = str;
@@ -1248,11 +1248,13 @@
char *str = string.s;
if (retval_ptr) {
- Z_STRLEN(pv) = strlen(str)+sizeof("return ;") - 1;
+ int l = strlen(str);
+ Z_STRLEN(pv) = l + sizeof("return ;") - 1;
Z_STRVAL(pv) = emalloc(Z_STRLEN(pv) + 1);
- strcpy(Z_STRVAL(pv), "return ");
- strcat(Z_STRVAL(pv), str);
- strcat(Z_STRVAL(pv), " ;");
+ memcpy(Z_STRVAL(pv), "return ", sizeof("return ") - 1);
+ memcpy(Z_STRVAL(pv) + sizeof("return ") - 1, str, l);
+ Z_STRVAL(pv)[Z_STRLEN(pv) - 1] = ';';
+ Z_STRVAL(pv)[Z_STRLEN(pv)] = '\0';
} else {
Z_STRLEN(pv) = strlen(str);
Z_STRVAL(pv) = str;