diff options
Diffstat (limited to 'ext/mysqlnd/mysqlnd_alloc.c')
| -rw-r--r-- | ext/mysqlnd/mysqlnd_alloc.c | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/ext/mysqlnd/mysqlnd_alloc.c b/ext/mysqlnd/mysqlnd_alloc.c index e033eb78e7..42ce55a36a 100644 --- a/ext/mysqlnd/mysqlnd_alloc.c +++ b/ext/mysqlnd/mysqlnd_alloc.c @@ -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 |
