]> granicus.if.org Git - php/commitdiff
Revert "Going to refactor mysqlnd"
authorXinchen Hui <laruence@php.net>
Thu, 8 May 2014 03:50:56 +0000 (11:50 +0800)
committerXinchen Hui <laruence@php.net>
Thu, 8 May 2014 03:50:56 +0000 (11:50 +0800)
This reverts commit 37d9f1e6e91856922726fb950bd3f3e88ed68efb.

ext/mysqlnd/mysqlnd.c
ext/mysqlnd/mysqlnd_alloc.c
ext/mysqlnd/mysqlnd_bt.c
ext/mysqlnd/mysqlnd_wireprotocol.c
ext/pdo_mysql/mysql_driver.c

index beca4bb781f3bac12cefa74f81bd41216baabc37..893a144c4b6745242d1076482acbe3c25ec82e2a 100644 (file)
@@ -64,6 +64,7 @@ PHPAPI const char * const mysqlnd_out_of_memory = "Out of memory";
 
 PHPAPI MYSQLND_STATS *mysqlnd_global_stats = NULL;
 
+
 /* {{{ mysqlnd_conn_data::free_options */
 static void
 MYSQLND_METHOD(mysqlnd_conn_data, free_options)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -103,6 +104,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, free_options)(MYSQLND_CONN_DATA * conn TSRMLS_
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::free_contents */
 static void
 MYSQLND_METHOD(mysqlnd_conn_data, free_contents)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -176,6 +178,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, free_contents)(MYSQLND_CONN_DATA * conn TSRMLS
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::dtor */
 static void
 MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, dtor)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -206,6 +209,7 @@ MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, dtor)(MYSQLND_CONN_DATA * conn TSRMLS_
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::simple_command_handle_response */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, simple_command_handle_response)(MYSQLND_CONN_DATA * conn, enum mysqlnd_packet_type ok_packet,
@@ -305,6 +309,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, simple_command_handle_response)(MYSQLND_CONN_D
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::simple_command_send_request */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, simple_command_send_request)(MYSQLND_CONN_DATA * conn, enum php_mysqlnd_server_command command,
@@ -362,6 +367,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, simple_command_send_request)(MYSQLND_CONN_DATA
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::simple_command */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, simple_command)(MYSQLND_CONN_DATA * conn, enum php_mysqlnd_server_command command,
@@ -381,6 +387,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, simple_command)(MYSQLND_CONN_DATA * conn, enum
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::set_server_option */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, set_server_option)(MYSQLND_CONN_DATA * const conn, enum_mysqlnd_server_option option TSRMLS_DC)
@@ -400,6 +407,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_server_option)(MYSQLND_CONN_DATA * const c
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::restart_psession */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, restart_psession)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -415,6 +423,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, restart_psession)(MYSQLND_CONN_DATA * conn TSR
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::end_psession */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, end_psession)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -424,6 +433,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, end_psession)(MYSQLND_CONN_DATA * conn TSRMLS_
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_switch_to_ssl_if_needed */
 static enum_func_status
 mysqlnd_switch_to_ssl_if_needed(
@@ -478,6 +488,7 @@ end:
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::fetch_auth_plugin_by_name */
 static struct st_mysqlnd_authentication_plugin *
 MYSQLND_METHOD(mysqlnd_conn_data, fetch_auth_plugin_by_name)(const char * const requested_protocol TSRMLS_DC)
@@ -495,6 +506,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, fetch_auth_plugin_by_name)(const char * const
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_run_authentication */
 static enum_func_status
 mysqlnd_run_authentication(
@@ -629,6 +641,7 @@ end:
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_connect_run_authentication */
 static enum_func_status
 mysqlnd_connect_run_authentication(
@@ -656,6 +669,7 @@ mysqlnd_connect_run_authentication(
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::execute_init_commands */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, execute_init_commands)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -687,6 +701,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, execute_init_commands)(MYSQLND_CONN_DATA * con
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::get_updated_connect_flags */
 static unsigned int
 MYSQLND_METHOD(mysqlnd_conn_data, get_updated_connect_flags)(MYSQLND_CONN_DATA * conn, unsigned int mysql_flags TSRMLS_DC)
@@ -728,6 +743,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, get_updated_connect_flags)(MYSQLND_CONN_DATA *
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::connect_handshake */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, connect_handshake)(MYSQLND_CONN_DATA * conn,
@@ -808,6 +824,7 @@ err:
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::connect */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, connect)(MYSQLND_CONN_DATA * conn,
@@ -1058,6 +1075,7 @@ err:
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn::connect */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn, connect)(MYSQLND * conn_handle,
@@ -1085,6 +1103,7 @@ MYSQLND_METHOD(mysqlnd_conn, connect)(MYSQLND * conn_handle,
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_connect */
 PHPAPI MYSQLND * mysqlnd_connect(MYSQLND * conn_handle,
                                                 const char * host, const char * user,
@@ -1126,6 +1145,7 @@ PHPAPI MYSQLND * mysqlnd_connect(MYSQLND * conn_handle,
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::query */
 /*
   If conn->error_info->error_no is not zero, then we had an error.
@@ -1154,6 +1174,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, query)(MYSQLND_CONN_DATA * conn, const char *
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::send_query */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, send_query)(MYSQLND_CONN_DATA * conn, const char * query, unsigned int query_len TSRMLS_DC)
@@ -1178,6 +1199,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, send_query)(MYSQLND_CONN_DATA * conn, const ch
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::reap_query */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, reap_query)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -1204,6 +1226,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, reap_query)(MYSQLND_CONN_DATA * conn TSRMLS_DC
 }
 /* }}} */
 
+
 #include "php_network.h"
 
 /* {{{ mysqlnd_stream_array_to_fd_set */
@@ -1239,6 +1262,7 @@ MYSQLND ** mysqlnd_stream_array_check_for_readiness(MYSQLND ** conn_array TSRMLS
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_stream_array_to_fd_set */
 static int mysqlnd_stream_array_to_fd_set(MYSQLND ** conn_array, fd_set * fds, php_socket_t * max_fd TSRMLS_DC)
 {
@@ -1272,6 +1296,7 @@ static int mysqlnd_stream_array_to_fd_set(MYSQLND ** conn_array, fd_set * fds, p
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_stream_array_from_fd_set */
 static int mysqlnd_stream_array_from_fd_set(MYSQLND ** conn_array, fd_set * fds TSRMLS_DC)
 {
@@ -1306,12 +1331,14 @@ static int mysqlnd_stream_array_from_fd_set(MYSQLND ** conn_array, fd_set * fds
 }
 /* }}} */
 
+
 #ifndef PHP_WIN32
 #define php_select(m, r, w, e, t)      select(m, r, w, e, t)
 #else
 #include "win32/select.h"
 #endif
 
+
 /* {{{ _mysqlnd_poll */
 PHPAPI enum_func_status
 _mysqlnd_poll(MYSQLND **r_array, MYSQLND **e_array, MYSQLND ***dont_poll, long sec, long usec, int * desc_num TSRMLS_DC)
@@ -1389,6 +1416,7 @@ _mysqlnd_poll(MYSQLND **r_array, MYSQLND **e_array, MYSQLND ***dont_poll, long s
 }
 /* }}} */
 
+
 /*
   COM_FIELD_LIST is special, different from a SHOW FIELDS FROM :
   - There is no result set header - status from the command, which
@@ -1466,6 +1494,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, list_fields)(MYSQLND_CONN_DATA * conn, const c
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::list_method */
 MYSQLND_RES *
 MYSQLND_METHOD(mysqlnd_conn_data, list_method)(MYSQLND_CONN_DATA * conn, const char * query, const char *achtung_wild, char *par1 TSRMLS_DC)
@@ -1505,6 +1534,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, list_method)(MYSQLND_CONN_DATA * conn, const c
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::errno */
 static unsigned int
 MYSQLND_METHOD(mysqlnd_conn_data, errno)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1513,6 +1543,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, errno)(const MYSQLND_CONN_DATA * const conn TS
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::error */
 static const char *
 MYSQLND_METHOD(mysqlnd_conn_data, error)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1521,6 +1552,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, error)(const MYSQLND_CONN_DATA * const conn TS
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::sqlstate */
 static const char *
 MYSQLND_METHOD(mysqlnd_conn_data, sqlstate)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1529,6 +1561,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, sqlstate)(const MYSQLND_CONN_DATA * const conn
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_old_escape_string */
 PHPAPI ulong 
 mysqlnd_old_escape_string(char * newstr, const char * escapestr, size_t escapestr_len TSRMLS_DC)
@@ -1538,6 +1571,7 @@ mysqlnd_old_escape_string(char * newstr, const char * escapestr, size_t escapest
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::ssl_set */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, ssl_set)(MYSQLND_CONN_DATA * const conn, const char * key, const char * const cert,
@@ -1561,6 +1595,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, ssl_set)(MYSQLND_CONN_DATA * const conn, const
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::escape_string */
 static ulong
 MYSQLND_METHOD(mysqlnd_conn_data, escape_string)(MYSQLND_CONN_DATA * const conn, char * newstr, const char * escapestr, size_t escapestr_len TSRMLS_DC)
@@ -1583,6 +1618,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, escape_string)(MYSQLND_CONN_DATA * const conn,
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::dump_debug_info */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, dump_debug_info)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1601,6 +1637,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, dump_debug_info)(MYSQLND_CONN_DATA * const con
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::select_db */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, select_db)(MYSQLND_CONN_DATA * const conn, const char * const db, unsigned int db_len TSRMLS_DC)
@@ -1636,6 +1673,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, select_db)(MYSQLND_CONN_DATA * const conn, con
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::ping */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, ping)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1661,6 +1699,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, ping)(MYSQLND_CONN_DATA * const conn TSRMLS_DC
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::statistic */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, statistic)(MYSQLND_CONN_DATA * conn, char **message, unsigned int * message_len TSRMLS_DC)
@@ -1699,6 +1738,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, statistic)(MYSQLND_CONN_DATA * conn, char **me
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::kill */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, kill)(MYSQLND_CONN_DATA * conn, unsigned int pid TSRMLS_DC)
@@ -1732,6 +1772,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, kill)(MYSQLND_CONN_DATA * conn, unsigned int p
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::set_charset */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, set_charset)(MYSQLND_CONN_DATA * const conn, const char * const csname TSRMLS_DC)
@@ -1770,6 +1811,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_charset)(MYSQLND_CONN_DATA * const conn, c
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::refresh */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, refresh)(MYSQLND_CONN_DATA * const conn, uint8_t options TSRMLS_DC)
@@ -1791,6 +1833,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, refresh)(MYSQLND_CONN_DATA * const conn, uint8
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::shutdown */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, shutdown)(MYSQLND_CONN_DATA * const conn, uint8_t level TSRMLS_DC)
@@ -1812,6 +1855,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, shutdown)(MYSQLND_CONN_DATA * const conn, uint
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_send_close */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, send_close)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1872,6 +1916,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, send_close)(MYSQLND_CONN_DATA * const conn TSR
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::get_reference */
 static MYSQLND_CONN_DATA *
 MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, get_reference)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1883,6 +1928,7 @@ MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, get_reference)(MYSQLND_CONN_DATA * con
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::free_reference */
 static enum_func_status
 MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, free_reference)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1903,6 +1949,7 @@ MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, free_reference)(MYSQLND_CONN_DATA * co
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::get_state */
 static enum mysqlnd_connection_state
 MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, get_state)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1912,6 +1959,7 @@ MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, get_state)(const MYSQLND_CONN_DATA * c
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::set_state */
 static void
 MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, set_state)(MYSQLND_CONN_DATA * const conn, enum mysqlnd_connection_state new_state TSRMLS_DC)
@@ -1923,6 +1971,7 @@ MYSQLND_METHOD_PRIVATE(mysqlnd_conn_data, set_state)(MYSQLND_CONN_DATA * const c
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::field_count */
 static unsigned int
 MYSQLND_METHOD(mysqlnd_conn_data, field_count)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1931,6 +1980,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, field_count)(const MYSQLND_CONN_DATA * const c
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::server_status */
 static unsigned int
 MYSQLND_METHOD(mysqlnd_conn_data, server_status)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1939,6 +1989,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, server_status)(const MYSQLND_CONN_DATA * const
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::insert_id */
 static uint64_t
 MYSQLND_METHOD(mysqlnd_conn_data, insert_id)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1947,6 +1998,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, insert_id)(const MYSQLND_CONN_DATA * const con
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::affected_rows */
 static uint64_t
 MYSQLND_METHOD(mysqlnd_conn_data, affected_rows)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1955,6 +2007,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, affected_rows)(const MYSQLND_CONN_DATA * const
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::warning_count */
 static unsigned int
 MYSQLND_METHOD(mysqlnd_conn_data, warning_count)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1963,6 +2016,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, warning_count)(const MYSQLND_CONN_DATA * const
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::info */
 static const char *
 MYSQLND_METHOD(mysqlnd_conn_data, info)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1978,6 +2032,7 @@ PHPAPI const char * mysqlnd_get_client_info()
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_get_client_version */
 PHPAPI unsigned int mysqlnd_get_client_version()
 {
@@ -1985,6 +2040,7 @@ PHPAPI unsigned int mysqlnd_get_client_version()
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::get_server_info */
 static const char *
 MYSQLND_METHOD(mysqlnd_conn_data, get_server_info)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -1993,6 +2049,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, get_server_info)(const MYSQLND_CONN_DATA * con
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::get_host_info */
 static const char *
 MYSQLND_METHOD(mysqlnd_conn_data, get_host_info)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -2001,6 +2058,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, get_host_info)(const MYSQLND_CONN_DATA * const
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::get_proto_info */
 static unsigned int
 MYSQLND_METHOD(mysqlnd_conn_data, get_proto_info)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -2009,6 +2067,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, get_proto_info)(const MYSQLND_CONN_DATA * cons
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::charset_name */
 static const char *
 MYSQLND_METHOD(mysqlnd_conn_data, charset_name)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -2017,6 +2076,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, charset_name)(const MYSQLND_CONN_DATA * const
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::thread_id */
 static uint64_t
 MYSQLND_METHOD(mysqlnd_conn_data, thread_id)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -2025,6 +2085,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, thread_id)(const MYSQLND_CONN_DATA * const con
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::get_server_version */
 static unsigned long
 MYSQLND_METHOD(mysqlnd_conn_data, get_server_version)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -2046,6 +2107,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, get_server_version)(const MYSQLND_CONN_DATA *
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::more_results */
 static zend_bool
 MYSQLND_METHOD(mysqlnd_conn_data, more_results)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -2056,6 +2118,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, more_results)(const MYSQLND_CONN_DATA * const
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::next_result */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, next_result)(MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -2104,6 +2167,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, next_result)(MYSQLND_CONN_DATA * const conn TS
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_field_type_name */
 PHPAPI const char *mysqlnd_field_type_name(enum mysqlnd_field_types field_type)
 {
@@ -2154,6 +2218,7 @@ PHPAPI const char *mysqlnd_field_type_name(enum mysqlnd_field_types field_type)
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::change_user */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, change_user)(MYSQLND_CONN_DATA * const conn,
@@ -2204,6 +2269,7 @@ end:
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::set_client_option */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const conn,
@@ -2350,7 +2416,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option)(MYSQLND_CONN_DATA * const c
                case MYSQL_OPT_CONNECT_ATTR_DELETE:
                        if (conn->options->connect_attr && value) {
                                DBG_INF_FMT("Before delete %d attribute(s)", zend_hash_num_elements(conn->options->connect_attr));
-                               zend_hash_str_del(conn->options->connect_attr, value, strlen(value));
+                               zend_hash_del(conn->options->connect_attr, value, strlen(value));
                                DBG_INF_FMT("%d left", zend_hash_num_elements(conn->options->connect_attr));
                        }
                        break;
@@ -2373,32 +2439,35 @@ end:
 }
 /* }}} */
 
+
 /* {{{ connect_attr_item_edtor */
 static void
-connect_attr_item_edtor(zval *pDest)
+connect_attr_item_edtor(void * pDest)
 {
 #ifdef ZTS
        TSRMLS_FETCH();
 #endif
        DBG_ENTER("connect_attr_item_edtor");
-       mnd_efree(Z_PTR_P(pDest));
+       mnd_efree(*(char **) pDest);
        DBG_VOID_RETURN;
 }
 /* }}} */
 
+
 /* {{{ connect_attr_item_pdtor */
 static void
-connect_attr_item_pdtor(zval * pDest)
+connect_attr_item_pdtor(void * pDest)
 {
 #ifdef ZTS
        TSRMLS_FETCH();
 #endif
        DBG_ENTER("connect_attr_item_pdtor");
-       mnd_pefree(Z_PTR_P(pDest), 1);
+       mnd_pefree(*(char **) pDest, 1);
        DBG_VOID_RETURN;
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::set_client_option_2d */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, set_client_option_2d)(MYSQLND_CONN_DATA * const conn,
@@ -2427,11 +2496,11 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_client_option_2d)(MYSQLND_CONN_DATA * cons
                        }
                        DBG_INF_FMT("Adding [%s][%s]", key, value);
                        {
-                               char * copyv = mnd_pestrdup(value, conn->persistent);
+                               const char * copyv = mnd_pestrdup(value, conn->persistent);
                                if (!copyv) {
                                        goto oom;
                                }
-                               zend_hash_str_update_ptr(conn->options->connect_attr, key, strlen(key), copyv);
+                               zend_hash_update(conn->options->connect_attr, key, strlen(key), &copyv, sizeof(char *), NULL);
                        }
                        break;
                default:
@@ -2447,6 +2516,7 @@ end:
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::use_result */
 static MYSQLND_RES *
 MYSQLND_METHOD(mysqlnd_conn_data, use_result)(MYSQLND_CONN_DATA * const conn, const unsigned int flags TSRMLS_DC)
@@ -2488,6 +2558,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, use_result)(MYSQLND_CONN_DATA * const conn, co
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::store_result */
 static MYSQLND_RES *
 MYSQLND_METHOD(mysqlnd_conn_data, store_result)(MYSQLND_CONN_DATA * const conn, const unsigned int flags TSRMLS_DC)
@@ -2544,6 +2615,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, store_result)(MYSQLND_CONN_DATA * const conn,
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::get_connection_stats */
 static void
 MYSQLND_METHOD(mysqlnd_conn_data, get_connection_stats)(const MYSQLND_CONN_DATA * const conn,
@@ -2555,6 +2627,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, get_connection_stats)(const MYSQLND_CONN_DATA
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::set_autocommit */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, set_autocommit)(MYSQLND_CONN_DATA * conn, unsigned int mode TSRMLS_DC)
@@ -2572,6 +2645,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, set_autocommit)(MYSQLND_CONN_DATA * conn, unsi
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::tx_commit */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, tx_commit)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -2580,6 +2654,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_commit)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::tx_rollback */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, tx_rollback)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -2588,29 +2663,30 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_rollback)(MYSQLND_CONN_DATA * conn TSRMLS_D
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_tx_cor_options_to_string */
 static void
 MYSQLND_METHOD(mysqlnd_conn_data, tx_cor_options_to_string)(const MYSQLND_CONN_DATA * const conn, smart_str * str, const unsigned int mode TSRMLS_DC)
 {
        if (mode & TRANS_COR_AND_CHAIN && !(mode & TRANS_COR_AND_NO_CHAIN)) {
-               if (str->s && str->s->len) {
+               if (str->len) {
                        smart_str_appendl(str, " ", sizeof(" ") - 1);
                }
                smart_str_appendl(str, "AND CHAIN", sizeof("AND CHAIN") - 1);
        } else if (mode & TRANS_COR_AND_NO_CHAIN && !(mode & TRANS_COR_AND_CHAIN)) {
-               if (str->s && str->s->len) {
+               if (str->len) {
                        smart_str_appendl(str, " ", sizeof(" ") - 1);
                }
                smart_str_appendl(str, "AND NO CHAIN", sizeof("AND NO CHAIN") - 1);
        }
 
        if (mode & TRANS_COR_RELEASE && !(mode & TRANS_COR_NO_RELEASE)) {
-               if (str->s && str->s->len) {
+               if (str->len) {
                        smart_str_appendl(str, " ", sizeof(" ") - 1);
                }
                smart_str_appendl(str, "RELEASE", sizeof("RELEASE") - 1);
        } else if (mode & TRANS_COR_NO_RELEASE && !(mode & TRANS_COR_RELEASE)) {
-               if (str->s && str->s->len) {
+               if (str->len) {
                        smart_str_appendl(str, " ", sizeof(" ") - 1);
                }
                smart_str_appendl(str, "NO RELEASE", sizeof("NO RELEASE") - 1);
@@ -2619,6 +2695,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_cor_options_to_string)(const MYSQLND_CONN_D
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_escape_string_for_tx_name_in_comment */
 static char *
 mysqlnd_escape_string_for_tx_name_in_comment(const char * const name TSRMLS_DC)
@@ -2661,6 +2738,7 @@ mysqlnd_escape_string_for_tx_name_in_comment(const char * const name TSRMLS_DC)
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::tx_commit_ex */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, tx_commit_or_rollback)(MYSQLND_CONN_DATA * conn, const zend_bool commit, const unsigned int flags, const char * const name TSRMLS_DC)
@@ -2671,17 +2749,18 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_commit_or_rollback)(MYSQLND_CONN_DATA * con
 
        if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
                do {
-                       smart_str tmp_str = {0};
+                       smart_str tmp_str = {0, 0, 0};
                        conn->m->tx_cor_options_to_string(conn, &tmp_str, flags TSRMLS_CC);
                        smart_str_0(&tmp_str);
 
+
                        {
                                char * query;
                                size_t query_len;
                                char * name_esc = mysqlnd_escape_string_for_tx_name_in_comment(name TSRMLS_CC);
                                
                                query_len = mnd_sprintf(&query, 0, (commit? "COMMIT%s %s":"ROLLBACK%s %s"),
-                                                                               name_esc? name_esc:"", tmp_str.s? tmp_str.s->val:"");
+                                                                               name_esc? name_esc:"", tmp_str.c? tmp_str.c:"");
                                smart_str_free(&tmp_str);
                                if (name_esc) {
                                        mnd_efree(name_esc);
@@ -2703,6 +2782,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_commit_or_rollback)(MYSQLND_CONN_DATA * con
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::tx_begin */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, tx_begin)(MYSQLND_CONN_DATA * conn, const unsigned int mode, const char * const name TSRMLS_DC)
@@ -2713,9 +2793,9 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_begin)(MYSQLND_CONN_DATA * conn, const unsi
 
        if (PASS == conn->m->local_tx_start(conn, this_func TSRMLS_CC)) {
                do {
-                       smart_str tmp_str = {0};
+                       smart_str tmp_str = {0, 0, 0};
                        if (mode & TRANS_START_WITH_CONSISTENT_SNAPSHOT) {
-                               if (tmp_str.s && tmp_str.s->len) {
+                               if (tmp_str.len) {
                                        smart_str_appendl(&tmp_str, ", ", sizeof(", ") - 1);
                                }
                                smart_str_appendl(&tmp_str, "WITH CONSISTENT SNAPSHOT", sizeof("WITH CONSISTENT SNAPSHOT") - 1);
@@ -2727,12 +2807,12 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_begin)(MYSQLND_CONN_DATA * conn, const unsi
                                        smart_str_free(&tmp_str);
                                        break;
                                } else if (mode & TRANS_START_READ_WRITE) {
-                                       if (tmp_str.s && tmp_str.s->len) {
+                                       if (tmp_str.len) {
                                                smart_str_appendl(&tmp_str, ", ", sizeof(", ") - 1);
                                        }
                                        smart_str_appendl(&tmp_str, "READ WRITE", sizeof("READ WRITE") - 1);
                                } else if (mode & TRANS_START_READ_ONLY) {
-                                       if (tmp_str.s && tmp_str.s->len) {
+                                       if (tmp_str.len) {
                                                smart_str_appendl(&tmp_str, ", ", sizeof(", ") - 1);
                                        }
                                        smart_str_appendl(&tmp_str, "READ ONLY", sizeof("READ ONLY") - 1);
@@ -2743,7 +2823,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_begin)(MYSQLND_CONN_DATA * conn, const unsi
                        {
                                char * name_esc = mysqlnd_escape_string_for_tx_name_in_comment(name TSRMLS_CC);
                                char * query;
-                               unsigned int query_len = mnd_sprintf(&query, 0, "START TRANSACTION%s %s", name_esc? name_esc:"", tmp_str.s? tmp_str.s->val:"");
+                               unsigned int query_len = mnd_sprintf(&query, 0, "START TRANSACTION%s %s", name_esc? name_esc:"", tmp_str.c? tmp_str.c:"");
                                smart_str_free(&tmp_str);
                                if (name_esc) {
                                        mnd_efree(name_esc);
@@ -2764,6 +2844,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_begin)(MYSQLND_CONN_DATA * conn, const unsi
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::tx_savepoint */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, tx_savepoint)(MYSQLND_CONN_DATA * conn, const char * const name TSRMLS_DC)
@@ -2795,6 +2876,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_savepoint)(MYSQLND_CONN_DATA * conn, const
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::tx_savepoint_release */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, tx_savepoint_release)(MYSQLND_CONN_DATA * conn, const char * const name TSRMLS_DC)
@@ -2826,6 +2908,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, tx_savepoint_release)(MYSQLND_CONN_DATA * conn
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::negotiate_client_api_capabilities */
 static unsigned int
 MYSQLND_METHOD(mysqlnd_conn_data, negotiate_client_api_capabilities)(MYSQLND_CONN_DATA * const conn, const unsigned int flags TSRMLS_DC)
@@ -2841,6 +2924,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, negotiate_client_api_capabilities)(MYSQLND_CON
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::get_client_api_capabilities */
 static unsigned int
 MYSQLND_METHOD(mysqlnd_conn_data, get_client_api_capabilities)(const MYSQLND_CONN_DATA * const conn TSRMLS_DC)
@@ -2850,6 +2934,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, get_client_api_capabilities)(const MYSQLND_CON
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::local_tx_start */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, local_tx_start)(MYSQLND_CONN_DATA * conn, size_t this_func TSRMLS_DC)
@@ -2860,6 +2945,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, local_tx_start)(MYSQLND_CONN_DATA * conn, size
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::local_tx_end */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, local_tx_end)(MYSQLND_CONN_DATA * conn, size_t this_func, enum_func_status status TSRMLS_DC)
@@ -2869,6 +2955,7 @@ MYSQLND_METHOD(mysqlnd_conn_data, local_tx_end)(MYSQLND_CONN_DATA * conn, size_t
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::init */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn_data, init)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -2884,8 +2971,10 @@ MYSQLND_METHOD(mysqlnd_conn_data, init)(MYSQLND_CONN_DATA * conn TSRMLS_DC)
 }
 /* }}} */
 
+
 MYSQLND_STMT * _mysqlnd_stmt_init(MYSQLND_CONN_DATA * const conn TSRMLS_DC);
 
+
 MYSQLND_CLASS_METHODS_START(mysqlnd_conn_data)
        MYSQLND_METHOD(mysqlnd_conn_data, init),
        MYSQLND_METHOD(mysqlnd_conn_data, connect),
@@ -2980,6 +3069,7 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_conn_data)
        MYSQLND_METHOD(mysqlnd_conn_data, get_client_api_capabilities)
 MYSQLND_CLASS_METHODS_END;
 
+
 /* {{{ mysqlnd_conn::get_reference */
 static MYSQLND *
 MYSQLND_METHOD(mysqlnd_conn, clone_object)(MYSQLND * const conn TSRMLS_DC)
@@ -2991,6 +3081,7 @@ MYSQLND_METHOD(mysqlnd_conn, clone_object)(MYSQLND * const conn TSRMLS_DC)
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::dtor */
 static void
 MYSQLND_METHOD_PRIVATE(mysqlnd_conn, dtor)(MYSQLND * conn TSRMLS_DC)
@@ -3006,6 +3097,7 @@ MYSQLND_METHOD_PRIVATE(mysqlnd_conn, dtor)(MYSQLND * conn TSRMLS_DC)
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_conn_data::close */
 static enum_func_status
 MYSQLND_METHOD(mysqlnd_conn, close)(MYSQLND * conn_handle, enum_connection_close_type close_type TSRMLS_DC)
@@ -3042,6 +3134,7 @@ MYSQLND_METHOD(mysqlnd_conn, close)(MYSQLND * conn_handle, enum_connection_close
 }
 /* }}} */
 
+
 MYSQLND_CLASS_METHODS_START(mysqlnd_conn)
        MYSQLND_METHOD(mysqlnd_conn, connect),
        MYSQLND_METHOD(mysqlnd_conn, clone_object),
@@ -3049,6 +3142,7 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_conn)
        MYSQLND_METHOD(mysqlnd_conn, close)
 MYSQLND_CLASS_METHODS_END;
 
+
 /* {{{ _mysqlnd_init */
 PHPAPI MYSQLND *
 _mysqlnd_init(unsigned int flags, zend_bool persistent TSRMLS_DC)
index e033eb78e7e1a54e9e9285aec21820052255b86a..42ce55a36a46993507ba3d9c4b9623b12da4de77 100644 (file)
@@ -62,6 +62,7 @@ PHPAPI const char * mysqlnd_debug_std_no_trace_funcs[] =
        NULL /* must be always last */
 };
 
+
 #if ZEND_DEBUG
 #else
 #define __zend_orig_filename "/unknown/unknown"
@@ -111,6 +112,7 @@ void * _mysqlnd_emalloc(size_t size MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_pemalloc */
 void * _mysqlnd_pemalloc(size_t size, zend_bool persistent MYSQLND_MEM_D)
 {
@@ -153,6 +155,7 @@ void * _mysqlnd_pemalloc(size_t size, zend_bool persistent MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_ecalloc */
 void * _mysqlnd_ecalloc(unsigned int nmemb, size_t size MYSQLND_MEM_D)
 {
@@ -193,6 +196,7 @@ void * _mysqlnd_ecalloc(unsigned int nmemb, size_t size MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_pecalloc */
 void * _mysqlnd_pecalloc(unsigned int nmemb, size_t size, zend_bool persistent MYSQLND_MEM_D)
 {
@@ -234,6 +238,7 @@ void * _mysqlnd_pecalloc(unsigned int nmemb, size_t size, zend_bool persistent M
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_erealloc */
 void * _mysqlnd_erealloc(void *ptr, size_t new_size MYSQLND_MEM_D)
 {
@@ -274,6 +279,7 @@ void * _mysqlnd_erealloc(void *ptr, size_t new_size MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_perealloc */
 void * _mysqlnd_perealloc(void *ptr, size_t new_size, zend_bool persistent MYSQLND_MEM_D)
 {
@@ -317,6 +323,7 @@ void * _mysqlnd_perealloc(void *ptr, size_t new_size, zend_bool persistent MYSQL
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_efree */
 void _mysqlnd_efree(void *ptr MYSQLND_MEM_D)
 {
@@ -347,6 +354,7 @@ void _mysqlnd_efree(void *ptr MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_pefree */
 void _mysqlnd_pefree(void *ptr, zend_bool persistent MYSQLND_MEM_D)
 {
@@ -378,6 +386,7 @@ void _mysqlnd_pefree(void *ptr, zend_bool persistent MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_malloc */
 void * _mysqlnd_malloc(size_t size MYSQLND_MEM_D)
 {
@@ -416,6 +425,7 @@ void * _mysqlnd_malloc(size_t size MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_calloc */
 void * _mysqlnd_calloc(unsigned int nmemb, size_t size MYSQLND_MEM_D)
 {
@@ -454,6 +464,7 @@ void * _mysqlnd_calloc(unsigned int nmemb, size_t size MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_realloc */
 void * _mysqlnd_realloc(void *ptr, size_t new_size MYSQLND_MEM_D)
 {
@@ -495,6 +506,7 @@ void * _mysqlnd_realloc(void *ptr, size_t new_size MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_free */
 void _mysqlnd_free(void *ptr MYSQLND_MEM_D)
 {
@@ -529,6 +541,7 @@ void _mysqlnd_free(void *ptr MYSQLND_MEM_D)
 #define SMART_STR_PREALLOC 512
 #include "ext/standard/php_smart_str.h"
 
+
 /* {{{ _mysqlnd_pestrndup */
 char * _mysqlnd_pestrndup(const char * const ptr, size_t length, zend_bool persistent MYSQLND_MEM_D)
 {
@@ -564,11 +577,12 @@ char * _mysqlnd_pestrndup(const char * const ptr, size_t length, zend_bool persi
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_pestrdup */
 char * _mysqlnd_pestrdup(const char * const ptr, zend_bool persistent MYSQLND_MEM_D)
 {
        char * ret;
-       smart_str tmp_str = {0};
+       smart_str tmp_str = {0, 0, 0};
        const char * p = ptr;
        zend_bool collect_memory_statistics = MYSQLND_G(collect_memory_statistics);
        TRACE_ALLOC_ENTER(mysqlnd_pestrdup_name);
@@ -583,11 +597,11 @@ char * _mysqlnd_pestrdup(const char * const ptr, zend_bool persistent MYSQLND_ME
                smart_str_appendc(&tmp_str, *p);
        } while (*p++);
 
-       ret = (persistent) ? __zend_malloc(tmp_str.s->len + sizeof(size_t)) : _emalloc(REAL_SIZE(tmp_str.s->len + sizeof(size_t)) ZEND_FILE_LINE_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
-       memcpy(FAKE_PTR(ret), tmp_str.s->val, tmp_str.s->len);
+       ret = (persistent) ? __zend_malloc(tmp_str.len + sizeof(size_t)) : _emalloc(REAL_SIZE(tmp_str.len + sizeof(size_t)) ZEND_FILE_LINE_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+       memcpy(FAKE_PTR(ret), tmp_str.c, tmp_str.len);
 
        if (ret && collect_memory_statistics) {
-               *(size_t *) ret = tmp_str.s->len;
+               *(size_t *) ret = tmp_str.len;
                MYSQLND_INC_GLOBAL_STATISTIC(persistent? STAT_MEM_STRDUP_COUNT : STAT_MEM_ESTRDUP_COUNT);
        }
        smart_str_free(&tmp_str);
@@ -596,6 +610,7 @@ char * _mysqlnd_pestrdup(const char * const ptr, zend_bool persistent MYSQLND_ME
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_sprintf */
 PHPAPI int _mysqlnd_sprintf(char ** pbuf, size_t max_len, const char *format, ...)
 {
@@ -608,6 +623,7 @@ PHPAPI int _mysqlnd_sprintf(char ** pbuf, size_t max_len, const char *format, ..
 }
 /* }}} */
 
+
 /* {{{ _mysqlnd_sprintf_free */
 PHPAPI void _mysqlnd_sprintf_free(char * p)
 {
@@ -622,6 +638,7 @@ PHPAPI int _mysqlnd_vsprintf(char ** pbuf, size_t max_len, const char * format,
 }
 /* }}} */
 
+
 #define MYSQLND_DEBUG_MEMORY 1
 
 #if MYSQLND_DEBUG_MEMORY == 0
@@ -633,6 +650,7 @@ static void * mysqlnd_zend_mm_emalloc(size_t size MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_pemalloc */
 static void * mysqlnd_zend_mm_pemalloc(size_t size, zend_bool persistent MYSQLND_MEM_D)
 {
@@ -640,6 +658,7 @@ static void * mysqlnd_zend_mm_pemalloc(size_t size, zend_bool persistent MYSQLND
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_ecalloc */
 static void * mysqlnd_zend_mm_ecalloc(unsigned int nmemb, size_t size MYSQLND_MEM_D)
 {
@@ -647,6 +666,7 @@ static void * mysqlnd_zend_mm_ecalloc(unsigned int nmemb, size_t size MYSQLND_ME
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_pecalloc */
 static void * mysqlnd_zend_mm_pecalloc(unsigned int nmemb, size_t size, zend_bool persistent MYSQLND_MEM_D)
 {
@@ -654,6 +674,7 @@ static void * mysqlnd_zend_mm_pecalloc(unsigned int nmemb, size_t size, zend_boo
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_erealloc */
 static void * mysqlnd_zend_mm_erealloc(void *ptr, size_t new_size MYSQLND_MEM_D)
 {
@@ -661,6 +682,7 @@ static void * mysqlnd_zend_mm_erealloc(void *ptr, size_t new_size MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_perealloc */
 static void * mysqlnd_zend_mm_perealloc(void *ptr, size_t new_size, zend_bool persistent MYSQLND_MEM_D)
 {
@@ -668,6 +690,7 @@ static void * mysqlnd_zend_mm_perealloc(void *ptr, size_t new_size, zend_bool pe
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_efree */
 static void mysqlnd_zend_mm_efree(void * ptr MYSQLND_MEM_D)
 {
@@ -675,6 +698,7 @@ static void mysqlnd_zend_mm_efree(void * ptr MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_pefree */
 static void mysqlnd_zend_mm_pefree(void * ptr, zend_bool persistent MYSQLND_MEM_D)
 {
@@ -682,6 +706,7 @@ static void mysqlnd_zend_mm_pefree(void * ptr, zend_bool persistent MYSQLND_MEM_
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_malloc */
 static void * mysqlnd_zend_mm_malloc(size_t size MYSQLND_MEM_D)
 {
@@ -689,6 +714,7 @@ static void * mysqlnd_zend_mm_malloc(size_t size MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_calloc */
 static void * mysqlnd_zend_mm_calloc(unsigned int nmemb, size_t size MYSQLND_MEM_D)
 {
@@ -696,6 +722,7 @@ static void * mysqlnd_zend_mm_calloc(unsigned int nmemb, size_t size MYSQLND_MEM
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_realloc */
 static void * mysqlnd_zend_mm_realloc(void * ptr, size_t new_size MYSQLND_MEM_D)
 {
@@ -703,6 +730,7 @@ static void * mysqlnd_zend_mm_realloc(void * ptr, size_t new_size MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_free */
 static void mysqlnd_zend_mm_free(void * ptr MYSQLND_MEM_D)
 {
@@ -710,6 +738,7 @@ static void mysqlnd_zend_mm_free(void * ptr MYSQLND_MEM_D)
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_pestrndup */
 static char * mysqlnd_zend_mm_pestrndup(const char * const ptr, size_t length, zend_bool persistent MYSQLND_MEM_D)
 {
@@ -717,6 +746,7 @@ static char * mysqlnd_zend_mm_pestrndup(const char * const ptr, size_t length, z
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_zend_mm_pestrdup */
 static char * mysqlnd_zend_mm_pestrdup(const char * const ptr, zend_bool persistent MYSQLND_MEM_D)
 {
@@ -726,6 +756,7 @@ static char * mysqlnd_zend_mm_pestrdup(const char * const ptr, zend_bool persist
 
 #endif
 
+
 PHPAPI struct st_mysqlnd_allocator_methods mysqlnd_allocator = 
 {
 #if MYSQLND_DEBUG_MEMORY
@@ -766,6 +797,7 @@ PHPAPI struct st_mysqlnd_allocator_methods mysqlnd_allocator =
 #endif
 };
 
+
 /*
  * Local variables:
  * tab-width: 4
index 27301f5a504344ee578de5629174d0481e2cb1d5..a93af6b395f8c6ffa38e4822d162d81a3102677e 100644 (file)
        TRACE_APPEND_STRL(val, sizeof(val)-1)
 
 #define TRACE_APPEND_KEY(key)                                            \
-       if ((tmp = zend_hash_str_find(ht, key, sizeof(key) - 1)) != NULL) {      \
-           TRACE_APPEND_STRL(Z_STRVAL_P(tmp), Z_STRLEN_P(tmp));             \
+       if (zend_hash_find(ht, key, sizeof(key), (void**)&tmp) == SUCCESS) { \
+           TRACE_APPEND_STRL(Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp));           \
        }
 
 /* }}} */
 
+
 static int
-mysqlnd_build_trace_args(zval *arg TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key) /* {{{ */
+mysqlnd_build_trace_args(zval **arg TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key) /* {{{ */
 {
        char **str;
        int *len;
@@ -63,20 +64,20 @@ mysqlnd_build_trace_args(zval *arg TSRMLS_DC, int num_args, va_list args, zend_h
         * but that could cause some E_NOTICE and also damn long lines.
         */
 
-       switch (Z_TYPE_P(arg)) {
+       switch (Z_TYPE_PP(arg)) {
                case IS_NULL:
                        TRACE_APPEND_STR("NULL, ");
                        break;
                case IS_STRING: {
                        int l_added;
                        TRACE_APPEND_CHR('\'');
-                       if (Z_STRLEN_P(arg) > 15) {
-                               TRACE_APPEND_STRL(Z_STRVAL_P(arg), 15);
+                       if (Z_STRLEN_PP(arg) > 15) {
+                               TRACE_APPEND_STRL(Z_STRVAL_PP(arg), 15);
                                TRACE_APPEND_STR("...', ");
                                l_added = 15 + 6 + 1; /* +1 because of while (--l_added) */
                        } else {
-                               l_added = Z_STRLEN_P(arg);
-                               TRACE_APPEND_STRL(Z_STRVAL_P(arg), l_added);
+                               l_added = Z_STRLEN_PP(arg);
+                               TRACE_APPEND_STRL(Z_STRVAL_PP(arg), l_added);
                                TRACE_APPEND_STR("', ");
                                l_added += 3 + 1;
                        }
@@ -87,17 +88,18 @@ mysqlnd_build_trace_args(zval *arg TSRMLS_DC, int num_args, va_list args, zend_h
                        }
                        break;
                }
-               case IS_FALSE:
-                       TRACE_APPEND_STR("false, ");
-                       break;
-               case IS_TRUE:
-                       TRACE_APPEND_STR("true, ");
+               case IS_BOOL:
+                       if (Z_LVAL_PP(arg)) {
+                               TRACE_APPEND_STR("true, ");
+                       } else {
+                               TRACE_APPEND_STR("false, ");
+                       }
                        break;
                case IS_RESOURCE:
                        TRACE_APPEND_STR("Resource id #");
                        /* break; */
                case IS_LONG: {
-                       long lval = Z_LVAL_P(arg);
+                       long lval = Z_LVAL_PP(arg);
                        char s_tmp[MAX_LENGTH_OF_LONG + 1];
                        int l_tmp = zend_sprintf(s_tmp, "%ld", lval);  /* SAFE */
                        TRACE_APPEND_STRL(s_tmp, l_tmp);
@@ -105,7 +107,7 @@ mysqlnd_build_trace_args(zval *arg TSRMLS_DC, int num_args, va_list args, zend_h
                        break;
                }
                case IS_DOUBLE: {
-                       double dval = Z_DVAL_P(arg);
+                       double dval = Z_DVAL_PP(arg);
                        char *s_tmp;
                        int l_tmp;
 
@@ -121,13 +123,18 @@ mysqlnd_build_trace_args(zval *arg TSRMLS_DC, int num_args, va_list args, zend_h
                        TRACE_APPEND_STR("Array, ");
                        break;
                case IS_OBJECT: {
-                       zend_string *class_name;
+                       char *class_name;
+                       zend_uint class_name_len;
+                       int dupl;
 
                        TRACE_APPEND_STR("Object(");
 
-                       class_name = zend_get_object_classname(Z_OBJ_P(arg) TSRMLS_CC);
+                       dupl = zend_get_object_classname(*arg, (const char **)&class_name, &class_name_len TSRMLS_CC);
 
-                       TRACE_APPEND_STRL(class_name->val, class_name->len);
+                       TRACE_APPEND_STRL(class_name, class_name_len);
+                       if (!dupl) {
+                               efree(class_name);
+                       }
 
                        TRACE_APPEND_STR("), ");
                        break;
@@ -140,13 +147,13 @@ mysqlnd_build_trace_args(zval *arg TSRMLS_DC, int num_args, va_list args, zend_h
 /* }}} */
 
 static int
-mysqlnd_build_trace_string(zval *frame TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key) /* {{{ */
+mysqlnd_build_trace_string(zval **frame TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key) /* {{{ */
 {
        char *s_tmp, **str;
        int *len, *num;
        long line;
-       HashTable *ht = Z_ARRVAL_P(frame);
-       zval *file, *tmp;
+       HashTable *ht = Z_ARRVAL_PP(frame);
+       zval **file, **tmp;
        uint * level;
 
        level = va_arg(args, uint *);
@@ -163,14 +170,14 @@ mysqlnd_build_trace_string(zval *frame TSRMLS_DC, int num_args, va_list args, ze
        sprintf(s_tmp, "#%d ", (*num)++);
        TRACE_APPEND_STRL(s_tmp, strlen(s_tmp));
        efree(s_tmp);
-       if ((file = zend_hash_str_find(ht, "file", sizeof("file") - 1)) != NULL) {
-               if ((tmp = zend_hash_str_find(ht, "line", sizeof("line") - 1)) != NULL) {
-                       line = Z_LVAL_P(tmp);
+       if (zend_hash_find(ht, "file", sizeof("file"), (void**)&file) == SUCCESS) {
+               if (zend_hash_find(ht, "line", sizeof("line"), (void**)&tmp) == SUCCESS) {
+                       line = Z_LVAL_PP(tmp);
                } else {
                        line = 0;
                }
-               s_tmp = emalloc(Z_STRLEN_P(file) + MAX_LENGTH_OF_LONG + 4 + 1);
-               sprintf(s_tmp, "%s(%ld): ", Z_STRVAL_P(file), line);
+               s_tmp = emalloc(Z_STRLEN_PP(file) + MAX_LENGTH_OF_LONG + 4 + 1);
+               sprintf(s_tmp, "%s(%ld): ", Z_STRVAL_PP(file), line);
                TRACE_APPEND_STRL(s_tmp, strlen(s_tmp));
                efree(s_tmp);
        } else {
@@ -180,9 +187,9 @@ mysqlnd_build_trace_string(zval *frame TSRMLS_DC, int num_args, va_list args, ze
        TRACE_APPEND_KEY("type");
        TRACE_APPEND_KEY("function");
        TRACE_APPEND_CHR('(');
-       if ((tmp = zend_hash_str_find(ht, "args", sizeof("args") - 1)) != NULL) {
+       if (zend_hash_find(ht, "args", sizeof("args"), (void**)&tmp) == SUCCESS) {
                int last_len = *len;
-               zend_hash_apply_with_arguments(Z_ARRVAL_P(tmp) TSRMLS_CC, mysqlnd_build_trace_args, 2, str, len);
+               zend_hash_apply_with_arguments(Z_ARRVAL_PP(tmp) TSRMLS_CC, (apply_func_args_t)mysqlnd_build_trace_args, 2, str, len);
                if (last_len != *len) {
                        *len -= 2; /* remove last ', ' */
                }
@@ -192,19 +199,21 @@ mysqlnd_build_trace_string(zval *frame TSRMLS_DC, int num_args, va_list args, ze
 }
 /* }}} */
 
+
 PHPAPI char *
-mysqlnd_get_backtrace(uint max_levels, size_t * length TSRMLS_DC) /* {{{ */
+mysqlnd_get_backtrace(uint max_levels, size_t * length TSRMLS_DC)
 {
-       zval trace;
+       zval *trace;
        char *res = estrdup(""), **str = &res, *s_tmp;
        int res_len = 0, *len = &res_len, num = 0;
        if (max_levels == 0) {
                max_levels = 99999;
        }
 
-       zend_fetch_debug_backtrace(&trace, 0, 0, 0 TSRMLS_CC);
+       MAKE_STD_ZVAL(trace);
+       zend_fetch_debug_backtrace(trace, 0, 0, 0 TSRMLS_CC);
 
-       zend_hash_apply_with_arguments(Z_ARRVAL(trace) TSRMLS_CC, mysqlnd_build_trace_string, 4, &max_levels, str, len, &num);
+       zend_hash_apply_with_arguments(Z_ARRVAL_P(trace) TSRMLS_CC, (apply_func_args_t)mysqlnd_build_trace_string, 4, &max_levels, str, len, &num);
        zval_ptr_dtor(&trace);
 
        if (max_levels) {
@@ -219,7 +228,7 @@ mysqlnd_get_backtrace(uint max_levels, size_t * length TSRMLS_DC) /* {{{ */
 
        return res;
 }
-/* }}} */
+
 
 /*
  * Local variables:
index 84a025a887cbb124531fb7b2a68599b4efcf9e22..ecce71d9c2b87d2a690cc983335a5307d1601e87 100644 (file)
                goto premature_end; \
        } \
 
+
 static const char *unknown_sqlstate= "HY000";
+
 const char * const mysqlnd_empty_string = "";
+
 /* Used in mysqlnd_debug.c */
 const char mysqlnd_read_header_name[]  = "mysqlnd_read_header";
 const char mysqlnd_read_body_name[]            = "mysqlnd_read_body";
 
+
 #define ERROR_MARKER 0xFF
 #define EODATA_MARKER 0xFE
 
@@ -91,7 +95,9 @@ const char * const mysqlnd_command_to_text[COM_END] =
 };
 /* }}} */
 
-static enum_mysqlnd_collected_stats packet_type_to_statistic_byte_count[PROT_LAST] /* {{{ */ =
+
+
+static enum_mysqlnd_collected_stats packet_type_to_statistic_byte_count[PROT_LAST] =
 {
        STAT_LAST,
        STAT_LAST,
@@ -104,9 +110,8 @@ static enum_mysqlnd_collected_stats packet_type_to_statistic_byte_count[PROT_LAS
        STAT_BYTES_RECEIVED_PREPARE_RESPONSE,
        STAT_BYTES_RECEIVED_CHANGE_USER,
 };
-/* }}} */
 
-static enum_mysqlnd_collected_stats packet_type_to_statistic_packet_count[PROT_LAST] /* {{{ */ =
+static enum_mysqlnd_collected_stats packet_type_to_statistic_packet_count[PROT_LAST] =
 {
        STAT_LAST,
        STAT_LAST,
@@ -119,7 +124,7 @@ static enum_mysqlnd_collected_stats packet_type_to_statistic_packet_count[PROT_L
        STAT_PACKETS_RECEIVED_PREPARE_RESPONSE,
        STAT_PACKETS_RECEIVED_CHANGE_USER,
 };
-/* }}} */
+
 
 /* {{{ php_mysqlnd_net_field_length
    Get next field's length */
@@ -150,6 +155,7 @@ php_mysqlnd_net_field_length(zend_uchar **packet)
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_net_field_length_ll
    Get next field's length */
 uint64_t
@@ -179,6 +185,7 @@ php_mysqlnd_net_field_length_ll(zend_uchar **packet)
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_net_store_length */
 zend_uchar *
 php_mysqlnd_net_store_length(zend_uchar *packet, uint64_t length)
@@ -205,6 +212,7 @@ php_mysqlnd_net_store_length(zend_uchar *packet, uint64_t length)
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_net_store_length_size */
 size_t 
 php_mysqlnd_net_store_length_size(uint64_t length)
@@ -222,6 +230,7 @@ php_mysqlnd_net_store_length_size(uint64_t length)
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_read_error_from_line */
 static enum_func_status
 php_mysqlnd_read_error_from_line(zend_uchar *buf, size_t buf_len,
@@ -265,6 +274,7 @@ end:
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_read_header */
 static enum_func_status
 mysqlnd_read_header(MYSQLND_NET * net, MYSQLND_PACKET_HEADER * header,
@@ -307,6 +317,7 @@ mysqlnd_read_header(MYSQLND_NET * net, MYSQLND_PACKET_HEADER * header,
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_greet_read */
 static enum_func_status
 php_mysqlnd_greet_read(void * _packet, MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -442,6 +453,7 @@ premature_end:
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_greet_free_mem */
 static
 void php_mysqlnd_greet_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -465,6 +477,7 @@ void php_mysqlnd_greet_free_mem(void * _packet, zend_bool stack_allocation TSRML
 }
 /* }}} */
 
+
 #define AUTH_WRITE_BUFFER_LEN (MYSQLND_HEADER_SIZE + MYSQLND_MAX_ALLOWED_USER_LEN + SCRAMBLE_LENGTH + MYSQLND_MAX_ALLOWED_DB_LEN + 1 + 4096)
 
 /* {{{ php_mysqlnd_auth_write */
@@ -610,6 +623,7 @@ size_t php_mysqlnd_auth_write(void * _packet, MYSQLND_CONN_DATA * conn TSRMLS_DC
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_auth_free_mem */
 static
 void php_mysqlnd_auth_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -621,6 +635,7 @@ void php_mysqlnd_auth_free_mem(void * _packet, zend_bool stack_allocation TSRMLS
 }
 /* }}} */
 
+
 #define AUTH_RESP_BUFFER_SIZE 2048
 
 /* {{{ php_mysqlnd_auth_response_read */
@@ -714,6 +729,7 @@ premature_end:
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_auth_response_free_mem */
 static void
 php_mysqlnd_auth_response_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -741,6 +757,7 @@ php_mysqlnd_auth_response_free_mem(void * _packet, zend_bool stack_allocation TS
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_change_auth_response_write */
 static size_t
 php_mysqlnd_change_auth_response_write(void * _packet, MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -769,6 +786,7 @@ php_mysqlnd_change_auth_response_write(void * _packet, MYSQLND_CONN_DATA * conn
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_change_auth_response_free_mem */
 static void
 php_mysqlnd_change_auth_response_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -780,6 +798,7 @@ php_mysqlnd_change_auth_response_free_mem(void * _packet, zend_bool stack_alloca
 }
 /* }}} */
 
+
 #define OK_BUFFER_SIZE 2048
 
 /* {{{ php_mysqlnd_ok_read */
@@ -851,6 +870,7 @@ premature_end:
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_ok_free_mem */
 static void
 php_mysqlnd_ok_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -866,6 +886,7 @@ php_mysqlnd_ok_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_eof_read */
 static enum_func_status
 php_mysqlnd_eof_read(void * _packet, MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -932,6 +953,7 @@ premature_end:
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_eof_free_mem */
 static
 void php_mysqlnd_eof_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -942,6 +964,7 @@ void php_mysqlnd_eof_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_cmd_write */
 size_t php_mysqlnd_cmd_write(void * _packet, MYSQLND_CONN_DATA * conn TSRMLS_DC)
 {
@@ -1006,6 +1029,7 @@ end:
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_cmd_free_mem */
 static
 void php_mysqlnd_cmd_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -1017,6 +1041,7 @@ void php_mysqlnd_cmd_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_rset_header_read */
 static enum_func_status
 php_mysqlnd_rset_header_read(void * _packet, MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -1121,6 +1146,7 @@ premature_end:
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_rset_header_free_mem */
 static
 void php_mysqlnd_rset_header_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -1138,7 +1164,7 @@ void php_mysqlnd_rset_header_free_mem(void * _packet, zend_bool stack_allocation
 }
 /* }}} */
 
-static size_t rset_field_offsets[] /* {{{ */ =
+static size_t rset_field_offsets[] =
 {
        STRUCT_OFFSET(MYSQLND_FIELD, catalog),
        STRUCT_OFFSET(MYSQLND_FIELD, catalog_length),
@@ -1153,7 +1179,7 @@ static size_t rset_field_offsets[] /* {{{ */ =
        STRUCT_OFFSET(MYSQLND_FIELD, org_name),
        STRUCT_OFFSET(MYSQLND_FIELD, org_name_length)
 };
-/* }}} */
+
 
 /* {{{ php_mysqlnd_rset_field_read */
 static enum_func_status
@@ -1351,6 +1377,7 @@ premature_end:
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_rset_field_free_mem */
 static
 void php_mysqlnd_rset_field_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -1363,6 +1390,7 @@ void php_mysqlnd_rset_field_free_mem(void * _packet, zend_bool stack_allocation
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_read_row_ex */
 static enum_func_status
 php_mysqlnd_read_row_ex(MYSQLND_CONN_DATA * conn, MYSQLND_MEMORY_POOL * result_set_memory_pool,
@@ -1446,6 +1474,7 @@ php_mysqlnd_read_row_ex(MYSQLND_CONN_DATA * conn, MYSQLND_MEMORY_POOL * result_s
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_rowp_read_binary_protocol */
 enum_func_status
 php_mysqlnd_rowp_read_binary_protocol(MYSQLND_MEMORY_POOL_CHUNK * row_buffer, zval ** fields,
@@ -1728,6 +1757,7 @@ php_mysqlnd_rowp_read_text_protocol_aux(MYSQLND_MEMORY_POOL_CHUNK * row_buffer,
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_rowp_read_text_protocol_zval */
 enum_func_status
 php_mysqlnd_rowp_read_text_protocol_zval(MYSQLND_MEMORY_POOL_CHUNK * row_buffer, zval ** fields,
@@ -1741,6 +1771,7 @@ php_mysqlnd_rowp_read_text_protocol_zval(MYSQLND_MEMORY_POOL_CHUNK * row_buffer,
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_rowp_read_text_protocol_c */
 enum_func_status
 php_mysqlnd_rowp_read_text_protocol_c(MYSQLND_MEMORY_POOL_CHUNK * row_buffer, zval ** fields,
@@ -1754,6 +1785,9 @@ php_mysqlnd_rowp_read_text_protocol_c(MYSQLND_MEMORY_POOL_CHUNK * row_buffer, zv
 }
 /* }}} */
 
+
+
+
 /* {{{ php_mysqlnd_rowp_read */
 /*
   if normal statements => packet->fields is created by this function,
@@ -1849,6 +1883,7 @@ end:
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_rowp_free_mem */
 static void
 php_mysqlnd_rowp_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -1876,6 +1911,7 @@ php_mysqlnd_rowp_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_stats_read */
 static enum_func_status
 php_mysqlnd_stats_read(void * _packet, MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -1897,6 +1933,7 @@ php_mysqlnd_stats_read(void * _packet, MYSQLND_CONN_DATA * conn TSRMLS_DC)
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_stats_free_mem */
 static
 void php_mysqlnd_stats_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -1912,6 +1949,7 @@ void php_mysqlnd_stats_free_mem(void * _packet, zend_bool stack_allocation TSRML
 }
 /* }}} */
 
+
 /* 1 + 4 (id) + 2 (field_c) + 2 (param_c) + 1 (filler) + 2 (warnings ) */
 #define PREPARE_RESPONSE_SIZE_41 9
 #define PREPARE_RESPONSE_SIZE_50 12
@@ -1991,6 +2029,7 @@ premature_end:
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_prepare_free_mem */
 static void
 php_mysqlnd_prepare_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -2002,6 +2041,7 @@ php_mysqlnd_prepare_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_D
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_chg_user_read */
 static enum_func_status
 php_mysqlnd_chg_user_read(void * _packet, MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -2064,6 +2104,7 @@ premature_end:
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_chg_user_free_mem */
 static void
 php_mysqlnd_chg_user_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -2088,6 +2129,7 @@ php_mysqlnd_chg_user_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_sha256_pk_request_write */
 static
 size_t php_mysqlnd_sha256_pk_request_write(void * _packet, MYSQLND_CONN_DATA * conn TSRMLS_DC)
@@ -2104,6 +2146,7 @@ size_t php_mysqlnd_sha256_pk_request_write(void * _packet, MYSQLND_CONN_DATA * c
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_sha256_pk_request_free_mem */
 static
 void php_mysqlnd_sha256_pk_request_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -2115,6 +2158,7 @@ void php_mysqlnd_sha256_pk_request_free_mem(void * _packet, zend_bool stack_allo
 }
 /* }}} */
 
+
 #define SHA256_PK_REQUEST_RESP_BUFFER_SIZE 2048
 
 /* {{{ php_mysqlnd_sha256_pk_request_response_read */
@@ -2150,6 +2194,7 @@ premature_end:
 }
 /* }}} */
 
+
 /* {{{ php_mysqlnd_sha256_pk_request_response_free_mem */
 static void
 php_mysqlnd_sha256_pk_request_response_free_mem(void * _packet, zend_bool stack_allocation TSRMLS_DC)
@@ -2167,6 +2212,7 @@ php_mysqlnd_sha256_pk_request_response_free_mem(void * _packet, zend_bool stack_
 }
 /* }}} */
 
+
 /* {{{ packet_methods */
 static
 mysqlnd_packet_methods packet_methods[PROT_LAST] =
@@ -2264,6 +2310,7 @@ mysqlnd_packet_methods packet_methods[PROT_LAST] =
 };
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_greet_packet */
 static struct st_mysqlnd_packet_greet *
 MYSQLND_METHOD(mysqlnd_protocol, get_greet_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2278,6 +2325,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_greet_packet)(MYSQLND_PROTOCOL * const prot
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_auth_packet */
 static struct st_mysqlnd_packet_auth *
 MYSQLND_METHOD(mysqlnd_protocol, get_auth_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2292,6 +2340,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_auth_packet)(MYSQLND_PROTOCOL * const proto
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_auth_response_packet */
 static struct st_mysqlnd_packet_auth_response *
 MYSQLND_METHOD(mysqlnd_protocol, get_auth_response_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2306,6 +2355,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_auth_response_packet)(MYSQLND_PROTOCOL * co
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_change_auth_response_packet */
 static struct st_mysqlnd_packet_change_auth_response *
 MYSQLND_METHOD(mysqlnd_protocol, get_change_auth_response_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2320,6 +2370,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_change_auth_response_packet)(MYSQLND_PROTOC
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_ok_packet */
 static struct st_mysqlnd_packet_ok *
 MYSQLND_METHOD(mysqlnd_protocol, get_ok_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2334,6 +2385,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_ok_packet)(MYSQLND_PROTOCOL * const protoco
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_eof_packet */
 static struct st_mysqlnd_packet_eof *
 MYSQLND_METHOD(mysqlnd_protocol, get_eof_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2348,6 +2400,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_eof_packet)(MYSQLND_PROTOCOL * const protoc
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_command_packet */
 static struct st_mysqlnd_packet_command *
 MYSQLND_METHOD(mysqlnd_protocol, get_command_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2362,6 +2415,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_command_packet)(MYSQLND_PROTOCOL * const pr
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_rset_packet */
 static struct st_mysqlnd_packet_rset_header *
 MYSQLND_METHOD(mysqlnd_protocol, get_rset_header_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2376,6 +2430,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_rset_header_packet)(MYSQLND_PROTOCOL * cons
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_result_field_packet */
 static struct st_mysqlnd_packet_res_field *
 MYSQLND_METHOD(mysqlnd_protocol, get_result_field_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2390,6 +2445,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_result_field_packet)(MYSQLND_PROTOCOL * con
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_row_packet */
 static struct st_mysqlnd_packet_row *
 MYSQLND_METHOD(mysqlnd_protocol, get_row_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2404,6 +2460,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_row_packet)(MYSQLND_PROTOCOL * const protoc
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_stats_packet */
 static struct st_mysqlnd_packet_stats *
 MYSQLND_METHOD(mysqlnd_protocol, get_stats_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2418,6 +2475,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_stats_packet)(MYSQLND_PROTOCOL * const prot
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_prepare_response_packet */
 static struct st_mysqlnd_packet_prepare_response *
 MYSQLND_METHOD(mysqlnd_protocol, get_prepare_response_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2432,6 +2490,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_prepare_response_packet)(MYSQLND_PROTOCOL *
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_change_user_response_packet */
 static struct st_mysqlnd_packet_chg_user_resp*
 MYSQLND_METHOD(mysqlnd_protocol, get_change_user_response_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2446,6 +2505,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_change_user_response_packet)(MYSQLND_PROTOC
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_sha256_pk_request_packet */
 static struct st_mysqlnd_packet_sha256_pk_request *
 MYSQLND_METHOD(mysqlnd_protocol, get_sha256_pk_request_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2460,6 +2520,7 @@ MYSQLND_METHOD(mysqlnd_protocol, get_sha256_pk_request_packet)(MYSQLND_PROTOCOL
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol::get_sha256_pk_request_response_packet */
 static struct st_mysqlnd_packet_sha256_pk_request_response *
 MYSQLND_METHOD(mysqlnd_protocol, get_sha256_pk_request_response_packet)(MYSQLND_PROTOCOL * const protocol, zend_bool persistent TSRMLS_DC)
@@ -2474,7 +2535,9 @@ MYSQLND_METHOD(mysqlnd_protocol, get_sha256_pk_request_response_packet)(MYSQLND_
 }
 /* }}} */
 
-MYSQLND_CLASS_METHODS_START(mysqlnd_protocol) 
+
+
+MYSQLND_CLASS_METHODS_START(mysqlnd_protocol)
        MYSQLND_METHOD(mysqlnd_protocol, get_greet_packet),
        MYSQLND_METHOD(mysqlnd_protocol, get_auth_packet),
        MYSQLND_METHOD(mysqlnd_protocol, get_auth_response_packet),
@@ -2492,6 +2555,7 @@ MYSQLND_CLASS_METHODS_START(mysqlnd_protocol)
        MYSQLND_METHOD(mysqlnd_protocol, get_sha256_pk_request_response_packet)
 MYSQLND_CLASS_METHODS_END;
 
+
 /* {{{ mysqlnd_protocol_init */
 PHPAPI MYSQLND_PROTOCOL *
 mysqlnd_protocol_init(zend_bool persistent TSRMLS_DC)
@@ -2503,6 +2567,7 @@ mysqlnd_protocol_init(zend_bool persistent TSRMLS_DC)
 }
 /* }}} */
 
+
 /* {{{ mysqlnd_protocol_free */
 PHPAPI void
 mysqlnd_protocol_free(MYSQLND_PROTOCOL * const protocol TSRMLS_DC)
@@ -2517,6 +2582,7 @@ mysqlnd_protocol_free(MYSQLND_PROTOCOL * const protocol TSRMLS_DC)
 }
 /* }}} */
 
+
 /*
  * Local variables:
  * tab-width: 4
index d7c993509ff55d60fbca0d89a9878a1ab8b0ea74..fcc395d65a48d74e91e1ba1ba841b4e4c32cb7c6 100644 (file)
@@ -444,8 +444,7 @@ static int pdo_mysql_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value
                        unsigned int tmp_len;
 
                        if (mysqlnd_stat(H->server, &tmp, &tmp_len) == PASS) {
-                               ZVAL_STRINGL(return_value, tmp, tmp_len);
-                               efree(tmp);
+                               ZVAL_STRINGL(return_value, tmp, tmp_len, 0);
 #else
                        if ((tmp = (char *)mysql_stat(H->server))) {
                                ZVAL_STRING(return_value, tmp);