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/mysqlnd | ahristov | 26 Sep |