mirror of
https://github.com/php/php-src.git
synced 2024-11-29 04:46:07 +08:00
Sync mysqlnd with HEAD. Same sources as in 5_3
This commit is contained in:
parent
0655ad3833
commit
a0aa80a3f8
@ -59,7 +59,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "php_ini.h"
|
#include "php_ini.h"
|
||||||
#include "php_mysql.h"
|
#include "php_mysql_structs.h"
|
||||||
|
|
||||||
/* True globals, no need for thread safety */
|
/* True globals, no need for thread safety */
|
||||||
static int le_result, le_link, le_plink;
|
static int le_result, le_link, le_plink;
|
||||||
|
@ -21,128 +21,13 @@
|
|||||||
#ifndef PHP_MYSQL_H
|
#ifndef PHP_MYSQL_H
|
||||||
#define 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
|
#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;
|
extern zend_module_entry mysql_module_entry;
|
||||||
|
|
||||||
#define mysql_module_ptr &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
|
#else
|
||||||
# define MySG(v) (mysql_globals.v)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#define mysql_module_ptr NULL
|
#define mysql_module_ptr NULL
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define phpext_mysql_ptr mysql_module_ptr
|
#define phpext_mysql_ptr mysql_module_ptr
|
||||||
|
151
ext/mysql/php_mysql_structs.h
Normal file
151
ext/mysql/php_mysql_structs.h
Normal file
@ -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 |
|
||||||
|
| license@php.net so we can mail you a copy immediately. |
|
||||||
|
+----------------------------------------------------------------------+
|
||||||
|
| Author: Zeev Suraski <zeev@zend.com> |
|
||||||
|
| Andrey Hristov <andrey@php.net> |
|
||||||
|
+----------------------------------------------------------------------+
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* $Id$ */
|
||||||
|
|
||||||
|
#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 */
|
@ -1,26 +1,20 @@
|
|||||||
// $Id$
|
// $Id$
|
||||||
// vim:ft=javascript
|
// vim:ft=javascript
|
||||||
|
|
||||||
ARG_WITH("mysqli", "MySQLi support", "no");
|
mysqld_source = "";
|
||||||
ARG_ENABLE("mysqlnd", "MySQLi with mysqlnd support", "no");
|
if (CHECK_LIB("ws2_32.lib", "mysqlnd")) {
|
||||||
|
|
||||||
if (PHP_MYSQLI == "mysqlnd" || PHP_MYSQL == "mysqlnd") {
|
|
||||||
mysqlnd_source =
|
mysqlnd_source =
|
||||||
"mysqlnd.c " +
|
"mysqlnd.c " +
|
||||||
"mysqlnd_debug.c " +
|
"mysqlnd_debug.c " +
|
||||||
"mysqlnd_charset.c " +
|
"mysqlnd_charset.c " +
|
||||||
"mysqlnd_loaddata.c " +
|
"mysqlnd_loaddata.c " +
|
||||||
"mysqlnd_palloc.c " +
|
"mysqlnd_palloc.c " +
|
||||||
"mysqlnd_ps.c " +
|
"mysqlnd_ps.c " +
|
||||||
"mysqlnd_ps_codec.c " +
|
"mysqlnd_ps_codec.c " +
|
||||||
"mysqlnd_qcache.c " +
|
"mysqlnd_qcache.c " +
|
||||||
"mysqlnd_result.c " +
|
"mysqlnd_result.c " +
|
||||||
"mysqlnd_result_meta.c " +
|
"mysqlnd_result_meta.c " +
|
||||||
"mysqlnd_statistics.c " +
|
"mysqlnd_statistics.c " +
|
||||||
"mysqlnd_wireprotocol.c";
|
"mysqlnd_wireprotocol.c";
|
||||||
if (CHECK_LIB("ws2_32.lib", "mysqlnd")) {
|
EXTENSION("mysqlnd", mysqlnd_source, false);
|
||||||
EXTENSION("mysqlnd", mysqlnd_source);
|
|
||||||
AC_DEFINE('HAVE_MYSQLND', 1, 'MySQL native driver support enabled');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,14 +86,14 @@ MYSQLND_METHOD(mysqlnd_debug, log)(MYSQLND_DEBUG * self,
|
|||||||
unsigned int level, const char * type, const char * message)
|
unsigned int level, const char * type, const char * message)
|
||||||
{
|
{
|
||||||
char pipe_buffer[512];
|
char pipe_buffer[512];
|
||||||
MYSQLND_ZTS(self);
|
|
||||||
enum_func_status ret;
|
enum_func_status ret;
|
||||||
int i;
|
int i;
|
||||||
char * message_line;
|
char * message_line;
|
||||||
size_t message_line_len;
|
uint message_line_len;
|
||||||
unsigned int flags = self->flags;
|
unsigned int flags = self->flags;
|
||||||
char pid_buffer[10], time_buffer[30], file_buffer[200],
|
char pid_buffer[10], time_buffer[30], file_buffer[200],
|
||||||
line_buffer[6], level_buffer[7];
|
line_buffer[6], level_buffer[7];
|
||||||
|
MYSQLND_ZTS(self);
|
||||||
|
|
||||||
if (!self->stream) {
|
if (!self->stream) {
|
||||||
if (FAIL == self->m->open(self, FALSE)) {
|
if (FAIL == self->m->open(self, FALSE)) {
|
||||||
@ -185,15 +185,15 @@ MYSQLND_METHOD(mysqlnd_debug, log_va)(MYSQLND_DEBUG *self,
|
|||||||
const char *format, ...)
|
const char *format, ...)
|
||||||
{
|
{
|
||||||
char pipe_buffer[512];
|
char pipe_buffer[512];
|
||||||
MYSQLND_ZTS(self);
|
|
||||||
int i;
|
int i;
|
||||||
enum_func_status ret;
|
enum_func_status ret;
|
||||||
char * message_line, *buffer;
|
char * message_line, *buffer;
|
||||||
size_t message_line_len;
|
uint message_line_len;
|
||||||
va_list args;
|
va_list args;
|
||||||
unsigned int flags = self->flags;
|
unsigned int flags = self->flags;
|
||||||
char pid_buffer[10], time_buffer[30], file_buffer[200],
|
char pid_buffer[10], time_buffer[30], file_buffer[200],
|
||||||
line_buffer[6], level_buffer[7];
|
line_buffer[6], level_buffer[7];
|
||||||
|
MYSQLND_ZTS(self);
|
||||||
|
|
||||||
if (!self->stream) {
|
if (!self->stream) {
|
||||||
if (FAIL == self->m->open(self, FALSE)) {
|
if (FAIL == self->m->open(self, FALSE)) {
|
||||||
@ -289,7 +289,7 @@ MYSQLND_METHOD(mysqlnd_debug, log_va)(MYSQLND_DEBUG *self,
|
|||||||
static zend_bool
|
static zend_bool
|
||||||
MYSQLND_METHOD(mysqlnd_debug, func_enter)(MYSQLND_DEBUG * self,
|
MYSQLND_METHOD(mysqlnd_debug, func_enter)(MYSQLND_DEBUG * self,
|
||||||
unsigned int line, const char * const file,
|
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) {
|
if ((self->flags & MYSQLND_DEBUG_DUMP_TRACE) == 0 || self->file_name == NULL) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -396,7 +396,7 @@ enum mysqlnd_debug_parser_state
|
|||||||
static void
|
static void
|
||||||
MYSQLND_METHOD(mysqlnd_debug, set_mode)(MYSQLND_DEBUG * self, const char * const mode)
|
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;
|
enum mysqlnd_debug_parser_state state = PARSER_WAIT_MODIFIER;
|
||||||
|
|
||||||
self->flags = 0;
|
self->flags = 0;
|
||||||
@ -460,7 +460,7 @@ MYSQLND_METHOD(mysqlnd_debug, set_mode)(MYSQLND_DEBUG * self, const char * const
|
|||||||
if (mode[j] == ',' || mode[j] == ':') {
|
if (mode[j] == ',' || mode[j] == ':') {
|
||||||
if (j > i + 2) {
|
if (j > i + 2) {
|
||||||
char func_name[1024];
|
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);
|
memcpy(func_name, mode + i + 1, func_name_len);
|
||||||
func_name[func_name_len] = '\0';
|
func_name[func_name_len] = '\0';
|
||||||
|
|
||||||
@ -630,6 +630,13 @@ void _mysqlnd_debug(const char *mode TSRMLS_DC)
|
|||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
|
||||||
|
#if ZEND_DEBUG
|
||||||
|
#else
|
||||||
|
#define __zend_filename "/unknown/unknown"
|
||||||
|
#define __zend_lineno 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* {{{ _mysqlnd_emalloc */
|
/* {{{ _mysqlnd_emalloc */
|
||||||
void * _mysqlnd_emalloc(size_t size MYSQLND_MEM_D)
|
void * _mysqlnd_emalloc(size_t size MYSQLND_MEM_D)
|
||||||
{
|
{
|
||||||
|
@ -36,7 +36,7 @@ struct st_mysqlnd_debug_methods
|
|||||||
enum_func_status (*log_va)(MYSQLND_DEBUG *self, unsigned int line, const char * const file,
|
enum_func_status (*log_va)(MYSQLND_DEBUG *self, unsigned int line, const char * const file,
|
||||||
unsigned int level, const char * type, const char *format, ...);
|
unsigned int level, const char * type, const char *format, ...);
|
||||||
zend_bool (*func_enter)(MYSQLND_DEBUG *self, unsigned int line, const char * const file,
|
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 (*func_leave)(MYSQLND_DEBUG *self, unsigned int line, const char * const file);
|
||||||
enum_func_status (*close)(MYSQLND_DEBUG *self);
|
enum_func_status (*close)(MYSQLND_DEBUG *self);
|
||||||
enum_func_status (*free)(MYSQLND_DEBUG *self);
|
enum_func_status (*free)(MYSQLND_DEBUG *self);
|
||||||
@ -91,15 +91,13 @@ char * mysqlnd_get_backtrace(TSRMLS_D);
|
|||||||
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define DBG_INF(msg)
|
static inline void DBG_INF(char *msg) {}
|
||||||
#define DBG_ERR(msg)
|
static inline void DBG_ERR(char *msg) {}
|
||||||
#define DBG_INF_FMT(...)
|
static inline void DBG_INF_FMT(char *format, ...) {}
|
||||||
#define DBG_ERR_FMT(...)
|
static inline void DBG_ERR_FMT(char *format, ...) {}
|
||||||
|
static inline void DBG_ENTER(char *func_name) {}
|
||||||
#define DBG_ENTER(func_name)
|
|
||||||
#define DBG_RETURN(value) return (value)
|
#define DBG_RETURN(value) return (value)
|
||||||
#define DBG_VOID_RETURN return;
|
#define DBG_VOID_RETURN return;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -359,7 +359,7 @@ void mysqlnd_palloc_zval_ptr_dtor(zval **zv, MYSQLND_THD_ZVAL_PCACHE * const thd
|
|||||||
*/
|
*/
|
||||||
if (type == MYSQLND_RES_PS_BUF || type == MYSQLND_RES_PS_UNBUF) {
|
if (type == MYSQLND_RES_PS_BUF || type == MYSQLND_RES_PS_UNBUF) {
|
||||||
; /* do nothing, zval_ptr_dtor will do the job*/
|
; /* 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
|
Not a prepared statement, then we have to
|
||||||
call copy_ctor and then zval_ptr_dtor()
|
call copy_ctor and then zval_ptr_dtor()
|
||||||
@ -389,7 +389,7 @@ void mysqlnd_palloc_zval_ptr_dtor(zval **zv, MYSQLND_THD_ZVAL_PCACHE * const thd
|
|||||||
|
|
||||||
/* The zval is from our cache */
|
/* The zval is from our cache */
|
||||||
/* refcount is always > 1, because we call Z_ADDREF_P(). Thus test refcount > 2 */
|
/* 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
|
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
|
do upcasting from zval to mysqlnd_zval here. Because we know that this
|
||||||
@ -435,7 +435,7 @@ void mysqlnd_palloc_zval_ptr_dtor(zval **zv, MYSQLND_THD_ZVAL_PCACHE * const thd
|
|||||||
++cache->put_hits;
|
++cache->put_hits;
|
||||||
++cache->free_items;
|
++cache->free_items;
|
||||||
((mysqlnd_zval *)*zv)->point_type = MYSQLND_POINTS_FREE;
|
((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);
|
ZVAL_NULL(*zv);
|
||||||
#ifdef ZTS
|
#ifdef ZTS
|
||||||
memset(&((mysqlnd_zval *)*zv)->thread_id, 0, sizeof(THREAD_T));
|
memset(&((mysqlnd_zval *)*zv)->thread_id, 0, sizeof(THREAD_T));
|
||||||
|
@ -280,7 +280,6 @@ typedef union {
|
|||||||
(((uint32) ((uchar) (A)[1])) << 8) +\
|
(((uint32) ((uchar) (A)[1])) << 8) +\
|
||||||
(((uint32) ((uchar) (A)[2])) << 16) +\
|
(((uint32) ((uchar) (A)[2])) << 16) +\
|
||||||
(((uint32) ((uchar) (A)[3])) << 24))
|
(((uint32) ((uchar) (A)[3])) << 24))
|
||||||
#undef bit_uint5korr
|
|
||||||
#define bit_uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
|
#define bit_uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
|
||||||
(((uint32) ((uchar) (A)[1])) << 8) +\
|
(((uint32) ((uchar) (A)[1])) << 8) +\
|
||||||
(((uint32) ((uchar) (A)[2])) << 16) +\
|
(((uint32) ((uchar) (A)[2])) << 16) +\
|
||||||
|
@ -23,6 +23,16 @@
|
|||||||
#ifndef MYSQLND_PRIV_H
|
#ifndef MYSQLND_PRIV_H
|
||||||
#define 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
|
#ifdef ZTS
|
||||||
#include "TSRM.h"
|
#include "TSRM.h"
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user