cvs: ZendEngine2 / zend_API.c

[email protected] ("Scott MacVicar") Fri, 08 May 2009 11:36:35 -0000
Newsgroups php.zend-engine.cvs
Message-ID <cvsscottmac1241782595@cvsserver>
scottmac		Fri May  8 11:36:35 2009 UTC

  Modified files:              
    /ZendEngine2	zend_API.c 
  Log:
  PPC machines mark char as unsigned, rather than signed.
  This caused a segfault when using the T type for zend_parse_parameters because the default value
  ended up being 255 and never -1
  
  
  
http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_API.c?r1=1.500&r2=1.501&diff_format=u
Index: ZendEngine2/zend_API.c
diff -u ZendEngine2/zend_API.c:1.500 ZendEngine2/zend_API.c:1.501
--- ZendEngine2/zend_API.c:1.500	Mon Apr  6 11:10:50 2009
+++ ZendEngine2/zend_API.c	Fri May  8 11:36:35 2009
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: zend_API.c,v 1.500 2009/04/06 11:10:50 dmitry Exp $ */
+/* $Id: zend_API.c,v 1.501 2009/05/08 11:36:35 scottmac Exp $ */
 
 #include "zend.h"
 #include "zend_execute.h"
@@ -309,7 +309,7 @@
 }
 /* }}} */
 
-static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **spec, char T_arg_type, int* ret_type, char **error, int *severity TSRMLS_DC) /* {{{ */
+static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **spec, signed char T_arg_type, int* ret_type, char **error, int *severity TSRMLS_DC) /* {{{ */
 {
 	char *spec_walk = *spec;
 	char c = *spec_walk++;
@@ -843,7 +843,7 @@
 }
 /* }}} */
 
-static int zend_parse_arg(int arg_num, zval **arg, va_list *va, char **spec, int quiet, char T_arg_type TSRMLS_DC) /* {{{ */
+static int zend_parse_arg(int arg_num, zval **arg, va_list *va, char **spec, int quiet, signed char T_arg_type TSRMLS_DC) /* {{{ */
 {
 	char *expected_type = NULL, *error = NULL;
 	int ret_type = IS_STRING;
@@ -886,7 +886,7 @@
 	int quiet = flags & ZEND_PARSE_PARAMS_QUIET;
 	zend_bool have_varargs = 0;
 	zend_bool T_present = 0;
-	char T_arg_type = -1;
+	signed char T_arg_type = -1;
 	zval ****varargs = NULL;
 	int *n_varargs = NULL;