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;  }  /* }}} */  | 
