List:Commits« Previous MessageNext Message »
From:ahristov Date:September 26 2007 9:53pm
Subject:PHP mysqlnd svn commit: r1059 - trunk/mysqlnd
View as plain text  
Author: ahristov
Date: 2007-09-26 21:53:56 +0200 (Wed, 26 Sep 2007)
New Revision: 1059

Modified:
   trunk/mysqlnd/mysqlnd_charset.c
   trunk/mysqlnd/mysqlnd_debug.h
   trunk/mysqlnd/mysqlnd_wireprotocol.c
Log:
- Fix build 
  warnings
- Fix valgrind warning



Modified: trunk/mysqlnd/mysqlnd_charset.c
===================================================================
--- trunk/mysqlnd/mysqlnd_charset.c	2007-09-24 13:10:13 UTC (rev 1058)
+++ trunk/mysqlnd/mysqlnd_charset.c	2007-09-26 19:53:56 UTC (rev 1059)
@@ -94,7 +94,7 @@
 
 static uint check_mb_big5(const char *start, const char *end)
 {
-	return ((end - start) > 1 && valid_big5head(*(start)) &&
valid_big5tail(*(start + 1)) ? 2 : 0);
+	return (valid_big5head(*(start)) && (end - start) > 1 &&
valid_big5tail(*(start + 1)) ? 2 : 0);
 }
 
 
@@ -112,14 +112,14 @@
 
 static uint check_mb_cp932(const char *start, const char *end)
 {
-	return (((end > start) + 1) && valid_cp932head((uint)start[0]) &&
-			valid_cp932tail((uint)start[1])) ? 2 : 0;
+	return (valid_cp932head((zend_uchar)start[0]) && (end - start >  1)
&&
+			valid_cp932tail((zend_uchar)start[1])) ? 2 : 0;
 }
 
 
 static uint mysqlnd_mbcharlen_cp932(uint cp932)
 {
-	return (valid_cp932head(cp932)) ? 2 : 1;
+	return (valid_cp932head((zend_uchar)cp932)) ? 2 : 1;
 }
 /* }}} */
 
@@ -157,7 +157,7 @@
 
 static uint check_mb_eucjpms(const char *start, const char *end)
 {
-	if (*((uint *)start) < 0x80) {
+	if (*((zend_uchar *)start) < 0x80) {
 		return 0;	/* invalid eucjpms character */
 	}
 	if (valid_eucjpms(start[0]) && (end - start) > 1 &&
valid_eucjpms(start[1])) {
@@ -207,15 +207,15 @@
 
 
 /* {{{ gbk functions */
-#define valid_gbk_head(c)	((uint)(c) >> 8)	
-#define valid_gbk_tail(c)	((uint)(c) & 0xFF)
+#define valid_gbk_head(c)	(0x81<=(zend_uchar)(c) && (zend_uchar)(c)<=0xFE)
+#define valid_gbk_tail(c)	((0x40<=(zend_uchar)(c) && (zend_uchar)(c)<=0x7E)
|| (0x80<=(zend_uchar)(c) && (zend_uchar)(c)<=0xFE))
 
 static uint check_mb_gbk(const char *start, const char *end)
 {
 	if (end - start <= 1) {
 		return 0;	/* invalid length */
 	}
-	return (valid_gbk_head(start[0]) && valid_gbk_tail(start[1])) ? 2 : 0;
+	return (valid_gbk_head(start[0]) && (end) - (start) > 0 &&
valid_gbk_tail(start[1])) ? 2 : 0;
 }
 
 static uint mysqlnd_mbcharlen_gbk(uint gbk)
@@ -224,6 +224,7 @@
 }
 /* }}} */
 
+
 /* {{{ sjis functions */
 #define valid_sjis_head(c)	((0x81 <= (c) && (c) <= 0x9F) && \
 							 (0xE0 <= (c) && (c) <= 0xFC))
@@ -233,16 +234,13 @@
 
 static uint check_mb_sjis(const char *start, const char *end)
 {
-	if (end - start <= 1) {
-		return 0;
-	}
-	return (valid_sjis_head((uint)start[0]) && valid_sjis_tail((uint)start[1])) ? 2
: 0;
+	return (valid_sjis_head((zend_uchar)start[0]) && (end - start) > 1 &&
valid_sjis_tail((zend_uchar)start[1])) ? 2 : 0;
 }
 
 
 static uint mysqlnd_mbcharlen_sjis(uint sjis)
 {
-	return (valid_sjis_head((uint)sjis)) ? 2 : 1;
+	return (valid_sjis_head((zend_uchar)sjis)) ? 2 : 1;
 }
 /* }}} */
 
@@ -268,7 +266,7 @@
 
 static uint check_mb_ujis(const char *start, const char *end)
 {
-	if ((uint)start[0] < 0x80) {
+	if (*(uchar*)start < 0x80) {
 		return 0;	/* invalid ujis character */
 	}
 	if (valid_ujis(*(start)) && valid_ujis(*((start)+1))) {
@@ -277,8 +275,7 @@
 	if (valid_ujis_ss2(*(start)) && valid_ujis_kata(*((start)+1))) {
 		return 2;
 	}
-	if (valid_ujis_ss3(*(start)) && (end-start) > 2 &&
valid_ujis(*((start)+1))
-			&& valid_ujis(*((start)+2))) {
+	if (valid_ujis_ss3(*(start)) && (end-start) > 2 &&
valid_ujis(*((start)+1)) && valid_ujis(*((start)+2))) {
 		return 3;
 	}
 	return 0;
@@ -287,14 +284,7 @@
 
 static uint mysqlnd_mbcharlen_ujis(uint ujis)
 {
-	if (((ujis & 0xFF) >= 0xA1 && (ujis & 0xFF) <= 0xFE) ||
-		((ujis & 0xFF) == 0x8E)) {
-		return 2;
-	}
-	if ((ujis & 0xFF) == 0x8F) {
-		return 3;
-	}
-	return 1;
+	return (valid_ujis(ujis)? 2: valid_ujis_ss2(ujis)? 2: valid_ujis_ss3(ujis)? 3: 1);
 }
 /* }}} */
 
@@ -532,6 +522,7 @@
 	const char 	*newstr_e = newstr + 2 * escapestr_len;
 	const char 	*end = escapestr + escapestr_len;
 	zend_bool	escape_overflow = FALSE;
+	int i = 0;
 
 	DBG_ENTER("mysqlnd_cset_escape_slashes");
 	

Modified: trunk/mysqlnd/mysqlnd_debug.h
===================================================================
--- trunk/mysqlnd/mysqlnd_debug.h	2007-09-24 13:10:13 UTC (rev 1058)
+++ trunk/mysqlnd/mysqlnd_debug.h	2007-09-26 19:53:56 UTC (rev 1059)
@@ -84,7 +84,7 @@
 #define DBG_INF_FMT(...) do { if (dbg_skip_trace == FALSE)
MYSQLND_G(dbg)->m->log_va(MYSQLND_G(dbg), __LINE__, __FILE__, -1, "info : ",
__VA_ARGS__); } while (0)
 #define DBG_ERR_FMT(...) do { if (dbg_skip_trace == FALSE)
MYSQLND_G(dbg)->m->log_va(MYSQLND_G(dbg), __LINE__, __FILE__, -1, "error: ",
__VA_ARGS__); } while (0)
 
-#define DBG_ENTER(func_name) zend_bool dbg_skip_trace = TRUE; if (MYSQLND_G(dbg))
dbg_skip_trace = !MYSQLND_G(dbg)->m->func_enter(MYSQLND_G(dbg), __LINE__, __FILE__,
func_name, sizeof(func_name) - 1);
+#define DBG_ENTER(func_name) zend_bool dbg_skip_trace = TRUE; if (MYSQLND_G(dbg))
dbg_skip_trace = !MYSQLND_G(dbg)->m->func_enter(MYSQLND_G(dbg), __LINE__, __FILE__,
func_name, strlen(func_name));
 #define DBG_RETURN(value)	do { if (MYSQLND_G(dbg))
MYSQLND_G(dbg)->m->func_leave(MYSQLND_G(dbg), __LINE__, __FILE__); return (value);
} while (0)
 #define DBG_VOID_RETURN		do { if (MYSQLND_G(dbg))
MYSQLND_G(dbg)->m->func_leave(MYSQLND_G(dbg), __LINE__, __FILE__); return; } while
(0)
 

Modified: trunk/mysqlnd/mysqlnd_wireprotocol.c
===================================================================
--- trunk/mysqlnd/mysqlnd_wireprotocol.c	2007-09-24 13:10:13 UTC (rev 1058)
+++ trunk/mysqlnd/mysqlnd_wireprotocol.c	2007-09-26 19:53:56 UTC (rev 1059)
@@ -300,7 +300,7 @@
 size_t mysqlnd_stream_write_w_header(MYSQLND * const conn, char * const buf, size_t count
TSRMLS_DC)
 {
 	zend_uchar safe_buf[((MYSQLND_HEADER_SIZE) + (sizeof(zend_uchar)) - 1) /
(sizeof(zend_uchar))];
-	zend_uchar *safe_storage = (char *) &safe_buf;
+	zend_uchar *safe_storage = &safe_buf;
 	MYSQLND_NET *net = &conn->net;
 	size_t old_chunk_size = net->stream->chunk_size;
 	size_t ret, left = count, packets_sent = 1;
@@ -1098,7 +1098,7 @@
 			case MYSQLND_NULL_LENGTH:
 				goto faulty_fake;
 			default:
-				*(char **)(((char *)meta) + rset_field_offsets[i]) = p;
+				*(char **)(((char *)meta) + rset_field_offsets[i]) = (char *)p;
 				*(unsigned int *)(((char*)meta) + rset_field_offsets[i+1]) = len;
 				p += len;
 				total_len += len + 1;
@@ -1479,7 +1479,7 @@
 					} else 			
 #endif
 					{
-						ZVAL_STRINGL(*current_field, start, bit_area - start - 1, 0);
+						ZVAL_STRINGL(*current_field, (char *) start, bit_area - start - 1, 0);
 					}
 					if (allocated == FALSE) {
 						((mysqlnd_zval *) obj)->point_type = MYSQLND_POINTS_INT_BUFFER;
@@ -1495,7 +1495,7 @@
 					} else 			
 #endif
 					{
-						ZVAL_STRINGL(*current_field, start, bit_area - start - 1, 0);
+						ZVAL_STRINGL(*current_field, (char *) start, bit_area - start - 1, 0);
 					}
 					if (allocated == FALSE) {
 						((mysqlnd_zval *) obj)->point_type = MYSQLND_POINTS_INT_BUFFER;

Thread
PHP mysqlnd svn commit: r1059 - trunk/mysqlndahristov26 Sep