diff options
author | Johannes Schlüter <johannes@php.net> | 2009-06-25 19:03:52 +0000 |
---|---|---|
committer | Johannes Schlüter <johannes@php.net> | 2009-06-25 19:03:52 +0000 |
commit | 9485cad6886578985fbc3b9453513ada8b4d480f (patch) | |
tree | b45e15d80fa2c097f2b655a9e491c2b26824eb18 /ext/mysqlnd/mysqlnd_block_alloc.c | |
parent | ca1bda67f2a9a4c16bc08a2d5e687225f04e4313 (diff) | |
download | php-git-9485cad6886578985fbc3b9453513ada8b4d480f.tar.gz |
Revert mysqlnd to RC3 state after issues with pconnects
Diffstat (limited to 'ext/mysqlnd/mysqlnd_block_alloc.c')
-rw-r--r-- | ext/mysqlnd/mysqlnd_block_alloc.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/ext/mysqlnd/mysqlnd_block_alloc.c b/ext/mysqlnd/mysqlnd_block_alloc.c index a9e2896049..2dcedcbfe6 100644 --- a/ext/mysqlnd/mysqlnd_block_alloc.c +++ b/ext/mysqlnd/mysqlnd_block_alloc.c @@ -35,7 +35,7 @@ mysqlnd_mempool_free_contents(MYSQLND_MEMORY_POOL * pool TSRMLS_DC) DBG_ENTER("mysqlnd_mempool_dtor"); for (i = 0; i < pool->free_chunk_list_elements; i++) { MYSQLND_MEMORY_POOL_CHUNK * chunk = pool->free_chunk_list[i]; - mysqlnd_mempool_free_chunk(chunk, FALSE TSRMLS_CC); + chunk->free_chunk(chunk, FALSE TSRMLS_CC); } DBG_VOID_RETURN; @@ -44,14 +44,11 @@ mysqlnd_mempool_free_contents(MYSQLND_MEMORY_POOL * pool TSRMLS_DC) /* {{{ mysqlnd_mempool_free_chunk */ -void +static void mysqlnd_mempool_free_chunk(MYSQLND_MEMORY_POOL_CHUNK * chunk, zend_bool cache_it TSRMLS_DC) { MYSQLND_MEMORY_POOL * pool = chunk->pool; DBG_ENTER("mysqlnd_mempool_free_chunk"); - if (!chunk) { - DBG_VOID_RETURN; - } if (chunk->from_pool) { /* Try to back-off and guess if this is the last block allocated */ if (chunk->ptr == (pool->arena + (pool->arena_size - pool->free_size - chunk->size))) { @@ -78,7 +75,7 @@ mysqlnd_mempool_free_chunk(MYSQLND_MEMORY_POOL_CHUNK * chunk, zend_bool cache_it /* {{{ mysqlnd_mempool_resize_chunk */ -void +static void mysqlnd_mempool_resize_chunk(MYSQLND_MEMORY_POOL_CHUNK * chunk, unsigned int size TSRMLS_DC) { DBG_ENTER("mysqlnd_mempool_resize_chunk"); @@ -138,6 +135,8 @@ MYSQLND_MEMORY_POOL_CHUNK * mysqlnd_mempool_get_chunk(MYSQLND_MEMORY_POOL * pool chunk = mnd_malloc(sizeof(MYSQLND_MEMORY_POOL_CHUNK)); } + chunk->free_chunk = mysqlnd_mempool_free_chunk; + chunk->resize_chunk = mysqlnd_mempool_resize_chunk; chunk->size = size; /* Should not go over MYSQLND_MAX_PACKET_SIZE, since we @@ -184,12 +183,10 @@ void mysqlnd_mempool_destroy(MYSQLND_MEMORY_POOL * pool TSRMLS_DC) { DBG_ENTER("mysqlnd_mempool_destroy"); - if (pool) { - /* mnd_free will reference LOCK_access and might crash, depending on the caller...*/ - mysqlnd_mempool_free_contents(pool TSRMLS_CC); - mnd_free(pool->arena); - mnd_free(pool); - } + /* mnd_free will reference LOCK_access and might crash, depending on the caller...*/ + mysqlnd_mempool_free_contents(pool TSRMLS_CC); + mnd_free(pool->arena); + mnd_free(pool); DBG_VOID_RETURN; } /* }}} */ |