]> granicus.if.org Git - php/commitdiff
Use mnd_ wrappers wherever possible. Needed for
authorAndrey Hristov <andrey@php.net>
Wed, 30 Sep 2009 23:13:43 +0000 (23:13 +0000)
committerAndrey Hristov <andrey@php.net>
Wed, 30 Sep 2009 23:13:43 +0000 (23:13 +0000)
statistics.

ext/mysqlnd/mysqlnd.c
ext/mysqlnd/mysqlnd_enum_n_def.h
ext/mysqlnd/mysqlnd_palloc.c
ext/mysqlnd/mysqlnd_ps.c
ext/mysqlnd/mysqlnd_ps_codec.c
ext/mysqlnd/mysqlnd_result.c

index 222b2e5f612f89e049b7721cd9925dda1b7c9386..904a310dbaaeccced7896db384b2d290e78b1db1 100644 (file)
@@ -96,7 +96,7 @@ MYSQLND_METHOD(mysqlnd_conn, free_options)(MYSQLND *conn TSRMLS_DC)
                unsigned int i;
                for (i = 0; i < conn->options.num_commands; i++) {
                        /* allocated with pestrdup */
-                       pefree(conn->options.init_commands[i], pers);
+                       mnd_pefree(conn->options.init_commands[i], pers);
                }
                mnd_pefree(conn->options.init_commands, pers);
                conn->options.init_commands = NULL;
@@ -669,7 +669,12 @@ PHPAPI MYSQLND *mysqlnd_connect(MYSQLND *conn,
 
        conn->greet_charset = mysqlnd_find_charset_nr(greet_packet.charset_no);
        /* we allow load data local infile by default */
-       mysql_flags  |= CLIENT_LOCAL_FILES;
+       mysql_flags  |= CLIENT_LOCAL_FILES | CLIENT_PS_MULTI_RESULTS;
+#ifndef MYSQLND_COMPRESSION_ENABLED
+       if (mysql_flags & CLIENT_COMPRESS) {
+               mysql_flags &= ~CLIENT_COMPRESS;
+       }
+#endif
 
        auth_packet->user               = user;
        auth_packet->password   = passwd;
index fec2261775db211f64e514a9d2636cd24aa02a7d..2293199a164b353ca421bf8b257ff32ef666d444 100644 (file)
@@ -73,6 +73,7 @@
 #define CLIENT_SECURE_CONNECTION       32768   /* New 4.1 authentication */
 #define CLIENT_MULTI_STATEMENTS                (1UL << 16) /* Enable/disable multi-stmt support */
 #define CLIENT_MULTI_RESULTS           (1UL << 17) /* Enable/disable multi-results */
+#define CLIENT_PS_MULTI_RESULTS                (1UL << 18) /* Multi-results in PS-protocol */
 
 typedef enum mysqlnd_extension
 {
index 1b035ed365b9f0f6893761666f11e87c72754dac..9d5104796ca378fa7fd21bb73448393cfcc5d0e1 100644 (file)
@@ -42,7 +42,7 @@ char * mysqlnd_palloc_get_zval_name = "mysqlnd_palloc_get_zval";
 /* {{{ _mysqlnd_palloc_init_cache */
 PHPAPI MYSQLND_ZVAL_PCACHE* _mysqlnd_palloc_init_cache(unsigned int cache_size TSRMLS_DC)
 {
-       MYSQLND_ZVAL_PCACHE *ret = calloc(1, sizeof(MYSQLND_ZVAL_PCACHE));
+       MYSQLND_ZVAL_PCACHE *ret = mnd_calloc(1, sizeof(MYSQLND_ZVAL_PCACHE));
        unsigned int i;
 
        DBG_ENTER("_mysqlnd_palloc_init_cache");
@@ -58,13 +58,13 @@ PHPAPI MYSQLND_ZVAL_PCACHE* _mysqlnd_palloc_init_cache(unsigned int cache_size T
 
        /* 1. First initialize the free list part of the structure */
        /* One more for empty position of last_added - always 0x0, bounds checking */
-       ret->free_list.ptr_line = calloc(ret->max_items + 1, sizeof(mysqlnd_zval *));
+       ret->free_list.ptr_line = mnd_calloc(ret->max_items + 1, sizeof(mysqlnd_zval *));
        ret->free_list.last_added = ret->free_list.ptr_line + ret->max_items;
        ret->free_list.canary1 = (void*)0xBEEF;
        ret->free_list.canary2 = (void*)0xAFFE;
 
        /* 3. Allocate and initialize our zvals and initialize the free list */
-       ret->block = calloc(ret->max_items, sizeof(mysqlnd_zval));
+       ret->block = mnd_calloc(ret->max_items, sizeof(mysqlnd_zval));
        ret->last_in_block = &(ret->block[ret->max_items]);
        for (i = 0; i < ret->max_items; i++) {
                /* 1. Initialize */
@@ -124,7 +124,7 @@ void _mysqlnd_palloc_free_cache(MYSQLND_ZVAL_PCACHE *cache TSRMLS_DC)
 /* {{{ _mysqlnd_palloc_init_thd_cache */
 PHPAPI MYSQLND_THD_ZVAL_PCACHE* _mysqlnd_palloc_init_thd_cache(MYSQLND_ZVAL_PCACHE * const cache TSRMLS_DC)
 {
-       MYSQLND_THD_ZVAL_PCACHE *ret = calloc(1, sizeof(MYSQLND_THD_ZVAL_PCACHE));
+       MYSQLND_THD_ZVAL_PCACHE *ret = mnd_calloc(1, sizeof(MYSQLND_THD_ZVAL_PCACHE));
        DBG_ENTER("_mysqlnd_palloc_init_thd_cache");
        DBG_INF_FMT("ret = %p", ret);
        
@@ -146,7 +146,7 @@ PHPAPI MYSQLND_THD_ZVAL_PCACHE* _mysqlnd_palloc_init_thd_cache(MYSQLND_ZVAL_PCAC
        ret->references = 1;
 
        /* 1. Initialize the GC list */
-       ret->gc_list.ptr_line = calloc(cache->max_items, sizeof(mysqlnd_zval *));
+       ret->gc_list.ptr_line = mnd_calloc(cache->max_items, sizeof(mysqlnd_zval *));
        /* Backward and forward looping is possible */
        ret->gc_list.last_added = ret->gc_list.ptr_line;
        ret->gc_list.canary1 = (void*)0xCAFE;
index ba4ea3120f936eee024f5ab91fe0b38ca317169b..befaf9ee4b00251a337b675a08e91e2972642222 100644 (file)
@@ -1411,7 +1411,7 @@ MYSQLND_METHOD(mysqlnd_stmt, bind_one_parameter)(MYSQLND_STMT * const stmt, unsi
 
        if (stmt->param_count) {
                if (!stmt->param_bind) {
-                       stmt->param_bind = ecalloc(stmt->param_count, sizeof(MYSQLND_PARAM_BIND));
+                       stmt->param_bind = mnd_ecalloc(stmt->param_count, sizeof(MYSQLND_PARAM_BIND));
                }
                
                /* Prevent from freeing */
@@ -1553,9 +1553,9 @@ MYSQLND_METHOD(mysqlnd_stmt, bind_one_result)(MYSQLND_STMT * const stmt, unsigne
                mysqlnd_stmt_separate_one_result_bind(stmt, param_no TSRMLS_CC);
                /* Guaranteed is that stmt->result_bind is NULL */
                if (!stmt->result_bind) {
-                       stmt->result_bind = ecalloc(stmt->field_count, sizeof(MYSQLND_RESULT_BIND));
+                       stmt->result_bind = mnd_ecalloc(stmt->field_count, sizeof(MYSQLND_RESULT_BIND));
                } else {
-                       stmt->result_bind = erealloc(stmt->result_bind, stmt->field_count * sizeof(MYSQLND_RESULT_BIND));
+                       stmt->result_bind = mnd_erealloc(stmt->result_bind, stmt->field_count * sizeof(MYSQLND_RESULT_BIND));
                }
                ALLOC_INIT_ZVAL(stmt->result_bind[param_no].zv);
                /*
@@ -2179,7 +2179,7 @@ MYSQLND_STMT * _mysqlnd_stmt_init(MYSQLND * const conn TSRMLS_DC)
 PHPAPI void
 mysqlnd_efree_param_bind_dtor(MYSQLND_PARAM_BIND * param_bind)
 {
-       efree(param_bind);
+       mnd_efree(param_bind);
 }
 /* }}} */
 
@@ -2188,7 +2188,7 @@ mysqlnd_efree_param_bind_dtor(MYSQLND_PARAM_BIND * param_bind)
 PHPAPI void
 mysqlnd_efree_result_bind_dtor(MYSQLND_RESULT_BIND * result_bind)
 {
-       efree(result_bind);
+       mnd_efree(result_bind);
 }
 /* }}} */
 
index 6fd2e053b28e36a010b002cec8e6d341347d0de1..b8aa80cd7da8e89f8bb6cfe681d98a7d74253eae 100644 (file)
@@ -583,7 +583,7 @@ static void
 mysqlnd_stmt_copy_it(zval *** copies, zval *original, unsigned int param_count, unsigned int current)
 {
        if (!*copies) {
-               *copies = ecalloc(param_count, sizeof(zval *));                                 
+               *copies = mnd_ecalloc(param_count, sizeof(zval *));                                     
        }
        MAKE_STD_ZVAL((*copies)[current]);
        *(*copies)[current] = *original;
@@ -777,7 +777,7 @@ mysqlnd_stmt_execute_store_params(MYSQLND_STMT *stmt, zend_uchar **buf, zend_uch
                                zval_ptr_dtor(&copies[i]);
                        }
                }
-               efree(copies);  
+               mnd_efree(copies);      
        }
 }
 /* }}} */
index 57039bdcadcbad7749ee0a403debf8057f1dd80e..c2798a09269034ee72b96e629bb91663a3349c76 100644 (file)
@@ -171,7 +171,7 @@ void mysqlnd_unbuffered_free_last_data(MYSQLND_RES *result TSRMLS_DC)
                                                                                        STAT_COPY_ON_WRITE_PERFORMED, 0);
                
                /* Free last row's zvals */
-               efree(unbuf->last_row_data);
+               mnd_efree(unbuf->last_row_data);
                unbuf->last_row_data = NULL;
        }
        if (unbuf->last_row_buffer) {
@@ -223,11 +223,11 @@ void mysqlnd_free_buffered_data(MYSQLND_RES *result TSRMLS_DC)
        }
        DBG_INF("Freeing data & row_buffer");
        if (set->data) {
-               pefree(set->data, set->persistent);
+               mnd_pefree(set->data, set->persistent);
                set->data = NULL;
        }
        if (set->row_buffers) {
-               pefree(set->row_buffers, set->persistent);
+               mnd_pefree(set->row_buffers, set->persistent);
                set->row_buffers        = NULL;
        }
        set->data_cursor = NULL;
@@ -237,7 +237,7 @@ void mysqlnd_free_buffered_data(MYSQLND_RES *result TSRMLS_DC)
        }
 
        DBG_INF("Freeing set");
-       pefree(set, set->persistent);
+       mnd_pefree(set, set->persistent);
 
        DBG_INF_FMT("after: real_usage=%lu  usage=%lu", zend_memory_usage(TRUE TSRMLS_CC), zend_memory_usage(FALSE TSRMLS_CC));
        DBG_VOID_RETURN;
@@ -295,13 +295,13 @@ void mysqlnd_free_background_buffered_data(MYSQLND_RES *result TSRMLS_DC)
 #if MYSQLND_DEBUG_MEMORY
                        DBG_INF("Freeing current_row & current_buffer");
 #endif
-                       pefree(current_row, set->persistent);
+                       mnd_pefree(current_row, set->persistent);
                }
                current_buffer->free_chunk(current_buffer, TRUE TSRMLS_CC);
        }
        DBG_INF("Freeing data & row_buffer");
-       pefree(set->data, set->persistent);
-       pefree(set->row_buffers, set->persistent);
+       mnd_pefree(set->data, set->persistent);
+       mnd_pefree(set->row_buffers, set->persistent);
        set->data                       = NULL;
        set->row_buffers        = NULL;
        set->data_cursor        = NULL;
@@ -315,7 +315,7 @@ void mysqlnd_free_background_buffered_data(MYSQLND_RES *result TSRMLS_DC)
        }
 
        DBG_INF("Freeing set");
-       pefree(set, set->persistent);
+       mnd_pefree(set, set->persistent);
 
        DBG_INF_FMT("after: real_usage=%lu  usage=%lu", zend_memory_usage(TRUE TSRMLS_CC), zend_memory_usage(FALSE TSRMLS_CC));
        DBG_VOID_RETURN;
@@ -333,7 +333,7 @@ MYSQLND_METHOD(mysqlnd_res, free_result_buffers)(MYSQLND_RES *result TSRMLS_DC)
 
        if (result->unbuf) {
                mysqlnd_unbuffered_free_last_data(result TSRMLS_CC);
-               efree(result->unbuf);
+               mnd_efree(result->unbuf);
                result->unbuf = NULL;
        } else if (result->stored_data) {
                mysqlnd_free_buffered_data(result TSRMLS_CC);
@@ -347,7 +347,7 @@ MYSQLND_METHOD(mysqlnd_res, free_result_buffers)(MYSQLND_RES *result TSRMLS_DC)
 #endif
 
        if (result->lengths) {
-               efree(result->lengths);
+               mnd_efree(result->lengths);
                result->lengths = NULL;
        }
 
@@ -398,7 +398,7 @@ void mysqlnd_internal_free_result(MYSQLND_RES *result TSRMLS_DC)
                result->conn = NULL;
        }
 
-       efree(result);
+       mnd_efree(result);
 
        DBG_VOID_RETURN;
 }
@@ -575,7 +575,7 @@ mysqlnd_query_read_result_set_header(MYSQLND *conn, MYSQLND_STMT *stmt TSRMLS_DC
                                if (FAIL == (ret = result->m.read_result_metadata(result, conn TSRMLS_CC))) {
                                        /* For PS, we leave them in Prepared state */
                                        if (!stmt) {
-                                               efree(conn->current_result);
+                                               mnd_efree(conn->current_result);
                                                conn->current_result = NULL;
                                        }
                                        DBG_ERR("Error ocurred while reading metadata");
@@ -587,7 +587,7 @@ mysqlnd_query_read_result_set_header(MYSQLND *conn, MYSQLND_STMT *stmt TSRMLS_DC
                                if (FAIL == (ret = PACKET_READ_ALLOCA(fields_eof, conn))) {
                                        DBG_ERR("Error ocurred while reading the EOF packet");
                                        result->m.free_result_contents(result TSRMLS_CC);
-                                       efree(result);
+                                       mnd_efree(result);
                                        if (!stmt) {
                                                conn->current_result = NULL;
                                        } else {