diff options
author | Dmitry Stogov <dmitry@php.net> | 2006-12-08 12:47:45 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2006-12-08 12:47:45 +0000 |
commit | dd9b5a08f0e7e8fccc6884f38ef432a9f21cc597 (patch) | |
tree | de6ac5e4e58caf388ab24630f847acd488411943 /Zend/zend_alloc.c | |
parent | 802e12674eccee28254f1df3fd8d9fdc0f0a495b (diff) | |
download | php-git-dd9b5a08f0e7e8fccc6884f38ef432a9f21cc597.tar.gz |
Fixed possible failure
Diffstat (limited to 'Zend/zend_alloc.c')
-rw-r--r-- | Zend/zend_alloc.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index 1c81eeb79a..ba109f9be9 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -557,15 +557,14 @@ static void zend_mm_free_cache(zend_mm_heap *heap) while (mm_block) { size_t size = ZEND_MM_BLOCK_SIZE(mm_block); zend_mm_free_block *q = mm_block->prev_free_block; - zend_mm_block *prev_block = ZEND_MM_PREV_BLOCK(mm_block); zend_mm_block *next_block = ZEND_MM_NEXT_BLOCK(mm_block); heap->cached -= size; - if (ZEND_MM_IS_FREE_BLOCK(prev_block)) { - size += ZEND_MM_FREE_BLOCK_SIZE(prev_block); - mm_block = (zend_mm_free_block*)prev_block; - zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) prev_block); + if (ZEND_MM_PREV_BLOCK_IS_FREE(mm_block)) { + mm_block = (zend_mm_free_block*)ZEND_MM_PREV_BLOCK(mm_block); + size += ZEND_MM_FREE_BLOCK_SIZE(mm_block); + zend_mm_remove_from_free_list(heap, (zend_mm_free_block *) mm_block); } if (ZEND_MM_IS_FREE_BLOCK(next_block)) { size += ZEND_MM_FREE_BLOCK_SIZE(next_block); |