summaryrefslogtreecommitdiff
path: root/ext/mysqlnd/mysqlnd_block_alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mysqlnd/mysqlnd_block_alloc.c')
-rw-r--r--ext/mysqlnd/mysqlnd_block_alloc.c59
1 files changed, 1 insertions, 58 deletions
diff --git a/ext/mysqlnd/mysqlnd_block_alloc.c b/ext/mysqlnd/mysqlnd_block_alloc.c
index a1b83308de..5c80ad028b 100644
--- a/ext/mysqlnd/mysqlnd_block_alloc.c
+++ b/ext/mysqlnd/mysqlnd_block_alloc.c
@@ -22,65 +22,12 @@
#include "mysqlnd_debug.h"
#include "mysqlnd_priv.h"
-/* {{{ mysqlnd_mempool_free_chunk */
-static void
-mysqlnd_mempool_free_chunk(MYSQLND_MEMORY_POOL * pool, void * ptr)
-{
- DBG_ENTER("mysqlnd_mempool_free_chunk");
- /* Try to back-off and guess if this is the last block allocated */
-#ifndef ZEND_TRACK_ARENA_ALLOC
- if (ptr == pool->last) {
- /*
- This was the last allocation. Lucky us, we can free
- a bit of memory from the pool. Next time we will return from the same ptr.
- */
- pool->arena->ptr = (char*)ptr;
- pool->last = NULL;
- }
-#endif
- DBG_VOID_RETURN;
-}
-/* }}} */
-
-
-/* {{{ mysqlnd_mempool_resize_chunk */
-static void *
-mysqlnd_mempool_resize_chunk(MYSQLND_MEMORY_POOL * pool, void * ptr, size_t old_size, size_t size)
-{
- DBG_ENTER("mysqlnd_mempool_resize_chunk");
-
-#ifndef ZEND_TRACK_ARENA_ALLOC
- /* Try to back-off and guess if this is the last block allocated */
- if (ptr == pool->last
- && (ZEND_MM_ALIGNED_SIZE(size) <= ((char*)pool->arena->end - (char*)ptr))) {
- /*
- This was the last allocation. Lucky us, we can free
- a bit of memory from the pool. Next time we will return from the same ptr.
- */
- pool->arena->ptr = (char*)ptr + ZEND_MM_ALIGNED_SIZE(size);
- DBG_RETURN(ptr);
- }
-#endif
-
- void *new_ptr = zend_arena_alloc(&pool->arena, size);
- memcpy(new_ptr, ptr, MIN(old_size, size));
- pool->last = ptr = new_ptr;
- DBG_RETURN(ptr);
-}
-/* }}} */
-
-
/* {{{ mysqlnd_mempool_get_chunk */
static void *
mysqlnd_mempool_get_chunk(MYSQLND_MEMORY_POOL * pool, size_t size)
{
- void *ptr = NULL;
DBG_ENTER("mysqlnd_mempool_get_chunk");
-
- ptr = zend_arena_alloc(&pool->arena, size);
- pool->last = ptr;
-
- DBG_RETURN(ptr);
+ DBG_RETURN(zend_arena_alloc(&pool->arena, size));
}
/* }}} */
@@ -96,11 +43,8 @@ mysqlnd_mempool_create(size_t arena_size)
arena = zend_arena_create(MAX(arena_size, ZEND_MM_ALIGNED_SIZE(sizeof(zend_arena))));
ret = zend_arena_alloc(&arena, sizeof(MYSQLND_MEMORY_POOL));
ret->arena = arena;
- ret->last = NULL;
ret->checkpoint = NULL;
ret->get_chunk = mysqlnd_mempool_get_chunk;
- ret->free_chunk = mysqlnd_mempool_free_chunk;
- ret->resize_chunk = mysqlnd_mempool_resize_chunk;
DBG_RETURN(ret);
}
/* }}} */
@@ -137,7 +81,6 @@ mysqlnd_mempool_restore_state(MYSQLND_MEMORY_POOL * pool)
#endif
if (pool->checkpoint) {
zend_arena_release(&pool->arena, pool->checkpoint);
- pool->last = NULL;
pool->checkpoint = NULL;
}
DBG_VOID_RETURN;