andrey Tue Oct 16 20:58:35 2007 UTC Modified files: /php-src/ext/mysql php_mysql_structs.h php_mysql.c php_mysql.h /php-src/ext/mysqlnd config.w32 mysqlnd_debug.c mysqlnd_debug.h mysqlnd_palloc.c mysqlnd_portability.h mysqlnd_priv.h Log: Sync mysqlnd with HEAD. Same sources as in 5_3
http://cvs.php.net/viewvc.cgi/php-src/ext/mysql/php_mysql_structs.h?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/mysql/php_mysql_structs.h diff -u /dev/null php-src/ext/mysql/php_mysql_structs.h:1.2 --- /dev/null Tue Oct 16 20:58:35 2007 +++ php-src/ext/mysql/php_mysql_structs.h Tue Oct 16 20:58:35 2007 @@ -0,0 +1,151 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2007 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.01 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available through the world-wide-web at the following url: | + | http://www.php.net/license/3_01.txt | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | [EMAIL PROTECTED] so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Author: Zeev Suraski <[EMAIL PROTECTED]> | + | Andrey Hristov <[EMAIL PROTECTED]> | + +----------------------------------------------------------------------+ +*/ + +/* $Id: php_mysql_structs.h,v 1.2 2007/10/16 20:58:35 andrey Exp $ */ + +#ifndef PHP_MYSQL_STRUCTS_H +#define PHP_MYSQL_STRUCTS_H + +#ifdef PHP_WIN32 +#define PHP_MYSQL_API __declspec(dllexport) +#else +#define PHP_MYSQL_API +#endif + +#if HAVE_MYSQL + +#ifdef ZTS +#include "TSRM.h" +#endif + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#if defined(HAVE_MYSQLND) +#include "ext/mysqlnd/mysqlnd.h" +#include "ext/mysql/mysql_mysqlnd.h" +#else +#include <mysql.h> +#endif + +#if (MYSQL_VERSION_ID >= 40113 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50007 || HAVE_MYSQLND +#define MYSQL_HAS_SET_CHARSET +#endif + +extern zend_module_entry mysql_module_entry; + +#define mysql_module_ptr &mysql_module_entry + +PHP_MINIT_FUNCTION(mysql); +PHP_RINIT_FUNCTION(mysql); +PHP_MSHUTDOWN_FUNCTION(mysql); +PHP_RSHUTDOWN_FUNCTION(mysql); +PHP_MINFO_FUNCTION(mysql); + +PHP_FUNCTION(mysql_connect); +PHP_FUNCTION(mysql_pconnect); +PHP_FUNCTION(mysql_close); +PHP_FUNCTION(mysql_select_db); +#if MYSQL_VERSION_ID < 40000 +PHP_FUNCTION(mysql_create_db); +PHP_FUNCTION(mysql_drop_db); +#endif +PHP_FUNCTION(mysql_query); +PHP_FUNCTION(mysql_unbuffered_query); +PHP_FUNCTION(mysql_db_query); +PHP_FUNCTION(mysql_list_dbs); +PHP_FUNCTION(mysql_list_tables); +PHP_FUNCTION(mysql_list_fields); +PHP_FUNCTION(mysql_list_processes); +PHP_FUNCTION(mysql_error); +PHP_FUNCTION(mysql_errno); +PHP_FUNCTION(mysql_affected_rows); +PHP_FUNCTION(mysql_insert_id); +PHP_FUNCTION(mysql_result); +PHP_FUNCTION(mysql_num_rows); +PHP_FUNCTION(mysql_num_fields); +PHP_FUNCTION(mysql_fetch_row); +PHP_FUNCTION(mysql_fetch_array); +PHP_FUNCTION(mysql_fetch_assoc); +PHP_FUNCTION(mysql_fetch_object); +PHP_FUNCTION(mysql_data_seek); +PHP_FUNCTION(mysql_fetch_lengths); +PHP_FUNCTION(mysql_fetch_field); +PHP_FUNCTION(mysql_field_seek); +PHP_FUNCTION(mysql_free_result); +PHP_FUNCTION(mysql_field_name); +PHP_FUNCTION(mysql_field_table); +PHP_FUNCTION(mysql_field_len); +PHP_FUNCTION(mysql_field_type); +PHP_FUNCTION(mysql_field_flags); +PHP_FUNCTION(mysql_escape_string); +PHP_FUNCTION(mysql_real_escape_string); +PHP_FUNCTION(mysql_get_client_info); +PHP_FUNCTION(mysql_get_host_info); +PHP_FUNCTION(mysql_get_proto_info); +PHP_FUNCTION(mysql_get_server_info); +PHP_FUNCTION(mysql_info); +PHP_FUNCTION(mysql_stat); +PHP_FUNCTION(mysql_thread_id); +PHP_FUNCTION(mysql_client_encoding); +PHP_FUNCTION(mysql_ping); +PHP_FUNCTION(mysql_set_charset); + +ZEND_BEGIN_MODULE_GLOBALS(mysql) + long default_link; + long num_links,num_persistent; + long max_links,max_persistent; + long allow_persistent; + long default_port; + char *default_host, *default_user, *default_password; + char *default_socket; + char *connect_error; + long connect_errno; + long connect_timeout; + long result_allocated; + long trace_mode; + long allow_local_infile; +#ifdef HAVE_MYSQLND + MYSQLND_THD_ZVAL_PCACHE *mysqlnd_thd_zval_cache; + MYSQLND_QCACHE *mysqlnd_qcache; + long cache_size; +#endif +ZEND_END_MODULE_GLOBALS(mysql) + +#ifdef ZTS +# define MySG(v) TSRMG(mysql_globals_id, zend_mysql_globals *, v) +#else +# define MySG(v) (mysql_globals.v) +#endif + + +#else + +#define mysql_module_ptr NULL + +#endif + +#define phpext_mysql_ptr mysql_module_ptr + +#endif /* PHP_MYSQL_STRUCTS_H */ http://cvs.php.net/viewvc.cgi/php-src/ext/mysql/php_mysql.c?r1=1.245&r2=1.246&diff_format=u Index: php-src/ext/mysql/php_mysql.c diff -u php-src/ext/mysql/php_mysql.c:1.245 php-src/ext/mysql/php_mysql.c:1.246 --- php-src/ext/mysql/php_mysql.c:1.245 Fri Oct 12 07:23:44 2007 +++ php-src/ext/mysql/php_mysql.c Tue Oct 16 20:58:35 2007 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_mysql.c,v 1.245 2007/10/12 07:23:44 tony2001 Exp $ */ +/* $Id: php_mysql.c,v 1.246 2007/10/16 20:58:35 andrey Exp $ */ /* TODO: * @@ -59,7 +59,7 @@ #endif #include "php_ini.h" -#include "php_mysql.h" +#include "php_mysql_structs.h" /* True globals, no need for thread safety */ static int le_result, le_link, le_plink; http://cvs.php.net/viewvc.cgi/php-src/ext/mysql/php_mysql.h?r1=1.42&r2=1.43&diff_format=u Index: php-src/ext/mysql/php_mysql.h diff -u php-src/ext/mysql/php_mysql.h:1.42 php-src/ext/mysql/php_mysql.h:1.43 --- php-src/ext/mysql/php_mysql.h:1.42 Wed Jul 25 23:47:32 2007 +++ php-src/ext/mysql/php_mysql.h Tue Oct 16 20:58:35 2007 @@ -16,133 +16,18 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_mysql.h,v 1.42 2007/07/25 23:47:32 jani Exp $ */ +/* $Id: php_mysql.h,v 1.43 2007/10/16 20:58:35 andrey Exp $ */ #ifndef PHP_MYSQL_H #define PHP_MYSQL_H -#ifdef PHP_WIN32 -#define PHP_MYSQL_API __declspec(dllexport) -#else -#define PHP_MYSQL_API -#endif - #if HAVE_MYSQL -#ifdef ZTS -#include "TSRM.h" -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -#if defined(HAVE_MYSQLND) -#include "ext/mysqlnd/mysqlnd.h" -#include "ext/mysql/mysql_mysqlnd.h" -#else -#include <mysql.h> -#endif - -#if (MYSQL_VERSION_ID >= 40113 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50007 || HAVE_MYSQLND -#define MYSQL_HAS_SET_CHARSET -#endif - extern zend_module_entry mysql_module_entry; - #define mysql_module_ptr &mysql_module_entry -PHP_MINIT_FUNCTION(mysql); -PHP_RINIT_FUNCTION(mysql); -PHP_MSHUTDOWN_FUNCTION(mysql); -PHP_RSHUTDOWN_FUNCTION(mysql); -PHP_MINFO_FUNCTION(mysql); - -PHP_FUNCTION(mysql_connect); -PHP_FUNCTION(mysql_pconnect); -PHP_FUNCTION(mysql_close); -PHP_FUNCTION(mysql_select_db); -#if MYSQL_VERSION_ID < 40000 -PHP_FUNCTION(mysql_create_db); -PHP_FUNCTION(mysql_drop_db); -#endif -PHP_FUNCTION(mysql_query); -PHP_FUNCTION(mysql_unbuffered_query); -PHP_FUNCTION(mysql_db_query); -PHP_FUNCTION(mysql_list_dbs); -PHP_FUNCTION(mysql_list_tables); -PHP_FUNCTION(mysql_list_fields); -PHP_FUNCTION(mysql_list_processes); -PHP_FUNCTION(mysql_error); -PHP_FUNCTION(mysql_errno); -PHP_FUNCTION(mysql_affected_rows); -PHP_FUNCTION(mysql_insert_id); -PHP_FUNCTION(mysql_result); -PHP_FUNCTION(mysql_num_rows); -PHP_FUNCTION(mysql_num_fields); -PHP_FUNCTION(mysql_fetch_row); -PHP_FUNCTION(mysql_fetch_array); -PHP_FUNCTION(mysql_fetch_assoc); -PHP_FUNCTION(mysql_fetch_object); -PHP_FUNCTION(mysql_data_seek); -PHP_FUNCTION(mysql_fetch_lengths); -PHP_FUNCTION(mysql_fetch_field); -PHP_FUNCTION(mysql_field_seek); -PHP_FUNCTION(mysql_free_result); -PHP_FUNCTION(mysql_field_name); -PHP_FUNCTION(mysql_field_table); -PHP_FUNCTION(mysql_field_len); -PHP_FUNCTION(mysql_field_type); -PHP_FUNCTION(mysql_field_flags); -PHP_FUNCTION(mysql_escape_string); -PHP_FUNCTION(mysql_real_escape_string); -PHP_FUNCTION(mysql_get_client_info); -PHP_FUNCTION(mysql_get_host_info); -PHP_FUNCTION(mysql_get_proto_info); -PHP_FUNCTION(mysql_get_server_info); -PHP_FUNCTION(mysql_info); -PHP_FUNCTION(mysql_stat); -PHP_FUNCTION(mysql_thread_id); -PHP_FUNCTION(mysql_client_encoding); -PHP_FUNCTION(mysql_ping); -PHP_FUNCTION(mysql_set_charset); - -ZEND_BEGIN_MODULE_GLOBALS(mysql) - long default_link; - long num_links,num_persistent; - long max_links,max_persistent; - long allow_persistent; - long default_port; - char *default_host, *default_user, *default_password; - char *default_socket; - char *connect_error; - long connect_errno; - long connect_timeout; - long result_allocated; - long trace_mode; - long allow_local_infile; -#ifdef HAVE_MYSQLND - MYSQLND_THD_ZVAL_PCACHE *mysqlnd_thd_zval_cache; - MYSQLND_QCACHE *mysqlnd_qcache; - long cache_size; -#endif -ZEND_END_MODULE_GLOBALS(mysql) - -#ifdef ZTS -# define MySG(v) TSRMG(mysql_globals_id, zend_mysql_globals *, v) #else -# define MySG(v) (mysql_globals.v) -#endif - - -#else - #define mysql_module_ptr NULL - #endif #define phpext_mysql_ptr mysql_module_ptr http://cvs.php.net/viewvc.cgi/php-src/ext/mysqlnd/config.w32?r1=1.4&r2=1.5&diff_format=u Index: php-src/ext/mysqlnd/config.w32 diff -u php-src/ext/mysqlnd/config.w32:1.4 php-src/ext/mysqlnd/config.w32:1.5 --- php-src/ext/mysqlnd/config.w32:1.4 Thu Oct 4 11:04:22 2007 +++ php-src/ext/mysqlnd/config.w32 Tue Oct 16 20:58:35 2007 @@ -1,26 +1,20 @@ -// $Id: config.w32,v 1.4 2007/10/04 11:04:22 andrey Exp $ +// $Id: config.w32,v 1.5 2007/10/16 20:58:35 andrey Exp $ // vim:ft=javascript -ARG_WITH("mysqli", "MySQLi support", "no"); -ARG_ENABLE("mysqlnd", "MySQLi with mysqlnd support", "no"); - -if (PHP_MYSQLI == "mysqlnd" || PHP_MYSQL == "mysqlnd") { +mysqld_source = ""; +if (CHECK_LIB("ws2_32.lib", "mysqlnd")) { mysqlnd_source = - "mysqlnd.c " + - "mysqlnd_debug.c " + - "mysqlnd_charset.c " + - "mysqlnd_loaddata.c " + - "mysqlnd_palloc.c " + - "mysqlnd_ps.c " + - "mysqlnd_ps_codec.c " + - "mysqlnd_qcache.c " + - "mysqlnd_result.c " + - "mysqlnd_result_meta.c " + - "mysqlnd_statistics.c " + - "mysqlnd_wireprotocol.c"; - if (CHECK_LIB("ws2_32.lib", "mysqlnd")) { - EXTENSION("mysqlnd", mysqlnd_source); - AC_DEFINE('HAVE_MYSQLND', 1, 'MySQL native driver support enabled'); - } + "mysqlnd.c " + + "mysqlnd_debug.c " + + "mysqlnd_charset.c " + + "mysqlnd_loaddata.c " + + "mysqlnd_palloc.c " + + "mysqlnd_ps.c " + + "mysqlnd_ps_codec.c " + + "mysqlnd_qcache.c " + + "mysqlnd_result.c " + + "mysqlnd_result_meta.c " + + "mysqlnd_statistics.c " + + "mysqlnd_wireprotocol.c"; + EXTENSION("mysqlnd", mysqlnd_source, false); } - http://cvs.php.net/viewvc.cgi/php-src/ext/mysqlnd/mysqlnd_debug.c?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/mysqlnd/mysqlnd_debug.c diff -u php-src/ext/mysqlnd/mysqlnd_debug.c:1.1 php-src/ext/mysqlnd/mysqlnd_debug.c:1.2 --- php-src/ext/mysqlnd/mysqlnd_debug.c:1.1 Tue Oct 2 10:43:09 2007 +++ php-src/ext/mysqlnd/mysqlnd_debug.c Tue Oct 16 20:58:35 2007 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mysqlnd_debug.c,v 1.1 2007/10/02 10:43:09 andrey Exp $ */ +/* $Id: mysqlnd_debug.c,v 1.2 2007/10/16 20:58:35 andrey Exp $ */ #include "php.h" #include "mysqlnd.h" @@ -86,14 +86,14 @@ unsigned int level, const char * type, const char * message) { char pipe_buffer[512]; - MYSQLND_ZTS(self); enum_func_status ret; int i; char * message_line; - size_t message_line_len; + uint message_line_len; unsigned int flags = self->flags; char pid_buffer[10], time_buffer[30], file_buffer[200], line_buffer[6], level_buffer[7]; + MYSQLND_ZTS(self); if (!self->stream) { if (FAIL == self->m->open(self, FALSE)) { @@ -185,15 +185,15 @@ const char *format, ...) { char pipe_buffer[512]; - MYSQLND_ZTS(self); int i; enum_func_status ret; char * message_line, *buffer; - size_t message_line_len; + uint message_line_len; va_list args; unsigned int flags = self->flags; char pid_buffer[10], time_buffer[30], file_buffer[200], line_buffer[6], level_buffer[7]; + MYSQLND_ZTS(self); if (!self->stream) { if (FAIL == self->m->open(self, FALSE)) { @@ -289,7 +289,7 @@ static zend_bool MYSQLND_METHOD(mysqlnd_debug, func_enter)(MYSQLND_DEBUG * self, unsigned int line, const char * const file, - char * func_name, size_t func_name_len) + char * func_name, uint func_name_len) { if ((self->flags & MYSQLND_DEBUG_DUMP_TRACE) == 0 || self->file_name == NULL) { return FALSE; @@ -396,7 +396,7 @@ static void MYSQLND_METHOD(mysqlnd_debug, set_mode)(MYSQLND_DEBUG * self, const char * const mode) { - size_t mode_len = strlen(mode), i; + uint mode_len = strlen(mode), i; enum mysqlnd_debug_parser_state state = PARSER_WAIT_MODIFIER; self->flags = 0; @@ -460,7 +460,7 @@ if (mode[j] == ',' || mode[j] == ':') { if (j > i + 2) { char func_name[1024]; - size_t func_name_len = MIN(sizeof(func_name) - 1, j - i - 1); + uint func_name_len = MIN(sizeof(func_name) - 1, j - i - 1); memcpy(func_name, mode + i + 1, func_name_len); func_name[func_name_len] = '\0'; @@ -630,6 +630,13 @@ /* }}} */ +#if ZEND_DEBUG +#else +#define __zend_filename "/unknown/unknown" +#define __zend_lineno 0 +#endif + + /* {{{ _mysqlnd_emalloc */ void * _mysqlnd_emalloc(size_t size MYSQLND_MEM_D) { http://cvs.php.net/viewvc.cgi/php-src/ext/mysqlnd/mysqlnd_debug.h?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/mysqlnd/mysqlnd_debug.h diff -u php-src/ext/mysqlnd/mysqlnd_debug.h:1.1 php-src/ext/mysqlnd/mysqlnd_debug.h:1.2 --- php-src/ext/mysqlnd/mysqlnd_debug.h:1.1 Tue Oct 2 10:45:27 2007 +++ php-src/ext/mysqlnd/mysqlnd_debug.h Tue Oct 16 20:58:35 2007 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mysqlnd_debug.h,v 1.1 2007/10/02 10:45:27 andrey Exp $ */ +/* $Id: mysqlnd_debug.h,v 1.2 2007/10/16 20:58:35 andrey Exp $ */ #ifndef MYSQLND_DEBUG_H #define MYSQLND_DEBUG_H @@ -36,7 +36,7 @@ enum_func_status (*log_va)(MYSQLND_DEBUG *self, unsigned int line, const char * const file, unsigned int level, const char * type, const char *format, ...); zend_bool (*func_enter)(MYSQLND_DEBUG *self, unsigned int line, const char * const file, - char * func_name, size_t func_name_len); + char * func_name, uint func_name_len); enum_func_status (*func_leave)(MYSQLND_DEBUG *self, unsigned int line, const char * const file); enum_func_status (*close)(MYSQLND_DEBUG *self); enum_func_status (*free)(MYSQLND_DEBUG *self); @@ -91,15 +91,13 @@ #else -#define DBG_INF(msg) -#define DBG_ERR(msg) -#define DBG_INF_FMT(...) -#define DBG_ERR_FMT(...) - -#define DBG_ENTER(func_name) +static inline void DBG_INF(char *msg) {} +static inline void DBG_ERR(char *msg) {} +static inline void DBG_INF_FMT(char *format, ...) {} +static inline void DBG_ERR_FMT(char *format, ...) {} +static inline void DBG_ENTER(char *func_name) {} #define DBG_RETURN(value) return (value) #define DBG_VOID_RETURN return; - #endif http://cvs.php.net/viewvc.cgi/php-src/ext/mysqlnd/mysqlnd_palloc.c?r1=1.3&r2=1.4&diff_format=u Index: php-src/ext/mysqlnd/mysqlnd_palloc.c diff -u php-src/ext/mysqlnd/mysqlnd_palloc.c:1.3 php-src/ext/mysqlnd/mysqlnd_palloc.c:1.4 --- php-src/ext/mysqlnd/mysqlnd_palloc.c:1.3 Sun Oct 7 05:15:04 2007 +++ php-src/ext/mysqlnd/mysqlnd_palloc.c Tue Oct 16 20:58:35 2007 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: mysqlnd_palloc.c,v 1.3 2007/10/07 05:15:04 davidw Exp $ */ +/* $Id: mysqlnd_palloc.c,v 1.4 2007/10/16 20:58:35 andrey Exp $ */ #include "php.h" #include "mysqlnd.h" #include "mysqlnd_priv.h" @@ -359,7 +359,7 @@ */ if (type == MYSQLND_RES_PS_BUF || type == MYSQLND_RES_PS_UNBUF) { ; /* do nothing, zval_ptr_dtor will do the job*/ - } else if (Z_REFCOUNT_P(*zv) > 1) { + } else if (Z_REFCOUNT_PP(zv) > 1) { /* Not a prepared statement, then we have to call copy_ctor and then zval_ptr_dtor() @@ -389,7 +389,7 @@ /* The zval is from our cache */ /* refcount is always > 1, because we call Z_ADDREF_P(). Thus test refcount > 2 */ - if (Z_REFCOUNT_P(*zv) > 2) { + if (Z_REFCOUNT_PP(zv) > 2) { /* Because the zval is first element in mysqlnd_zval structure, then we can do upcasting from zval to mysqlnd_zval here. Because we know that this @@ -435,7 +435,7 @@ ++cache->put_hits; ++cache->free_items; ((mysqlnd_zval *)*zv)->point_type = MYSQLND_POINTS_FREE; - Z_DELREF_P(*zv); /* Make it 1 */ + Z_DELREF_PP(zv); /* Make it 1 */ ZVAL_NULL(*zv); #ifdef ZTS memset(&((mysqlnd_zval *)*zv)->thread_id, 0, sizeof(THREAD_T)); http://cvs.php.net/viewvc.cgi/php-src/ext/mysqlnd/mysqlnd_portability.h?r1=1.5&r2=1.6&diff_format=u Index: php-src/ext/mysqlnd/mysqlnd_portability.h diff -u php-src/ext/mysqlnd/mysqlnd_portability.h:1.5 php-src/ext/mysqlnd/mysqlnd_portability.h:1.6 --- php-src/ext/mysqlnd/mysqlnd_portability.h:1.5 Sun Oct 7 12:33:40 2007 +++ php-src/ext/mysqlnd/mysqlnd_portability.h Tue Oct 16 20:58:35 2007 @@ -280,7 +280,6 @@ (((uint32) ((uchar) (A)[1])) << 8) +\ (((uint32) ((uchar) (A)[2])) << 16) +\ (((uint32) ((uchar) (A)[3])) << 24)) -#undef bit_uint5korr #define bit_uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\ (((uint32) ((uchar) (A)[1])) << 8) +\ (((uint32) ((uchar) (A)[2])) << 16) +\ http://cvs.php.net/viewvc.cgi/php-src/ext/mysqlnd/mysqlnd_priv.h?r1=1.4&r2=1.5&diff_format=u Index: php-src/ext/mysqlnd/mysqlnd_priv.h diff -u php-src/ext/mysqlnd/mysqlnd_priv.h:1.4 php-src/ext/mysqlnd/mysqlnd_priv.h:1.5 --- php-src/ext/mysqlnd/mysqlnd_priv.h:1.4 Tue Oct 2 10:43:09 2007 +++ php-src/ext/mysqlnd/mysqlnd_priv.h Tue Oct 16 20:58:35 2007 @@ -18,11 +18,21 @@ +----------------------------------------------------------------------+ */ -/* $Id: mysqlnd_priv.h,v 1.4 2007/10/02 10:43:09 andrey Exp $ */ +/* $Id: mysqlnd_priv.h,v 1.5 2007/10/16 20:58:35 andrey Exp $ */ #ifndef MYSQLND_PRIV_H #define MYSQLND_PRIV_H +#ifndef Z_ADDREF_P +/* PHP 5.2, old GC */ +#define Z_ADDREF_P(pz) (++(pz)->refcount) +#define Z_DELREF_P(pz) (--(pz)->refcount) +#define Z_REFCOUNT_P(pz) ((pz)->refcount) +#define Z_SET_REFCOUNT_P(pz, rc) ((pz)->refcount = rc) +#define Z_REFCOUNT_PP(ppz) Z_REFCOUNT_P(*(ppz)) +#define Z_DELREF_PP(ppz) Z_DELREF_P(*(ppz)) +#endif + #ifdef ZTS #include "TSRM.h" #endif
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php