Module: wine Branch: master Commit: 18ee50e5d2bd0f55061215e80559f1f50152bf16 URL: http://source.winehq.org/git/wine.git/?a=commit;h=18ee50e5d2bd0f55061215e805...
Author: Jacek Caban jacek@codeweavers.com Date: Wed Feb 25 01:28:49 2009 +0100
jscript: Fixed handling block_cnt in jsheap_alloc.
---
dlls/jscript/jsutils.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/dlls/jscript/jsutils.c b/dlls/jscript/jsutils.c index defddd4..5f24b7c 100644 --- a/dlls/jscript/jsutils.c +++ b/dlls/jscript/jsutils.c @@ -83,25 +83,25 @@ void *jsheap_alloc(jsheap_t *heap, DWORD size) heap->block_cnt = 1; }
- if(heap->offset + size < block_size(heap->last_block)) { + if(heap->offset + size <= block_size(heap->last_block)) { tmp = ((BYTE*)heap->blocks[heap->last_block])+heap->offset; heap->offset += size; return tmp; }
- if(size < block_size(heap->last_block+1)) { + if(size <= block_size(heap->last_block+1)) { if(heap->last_block+1 == heap->block_cnt) { tmp = heap_realloc(heap->blocks, (heap->block_cnt+1)*sizeof(void*)); if(!tmp) return NULL; - heap->blocks = tmp; - }
- tmp = heap_alloc(block_size(heap->block_cnt+1)); - if(!tmp) - return NULL; + heap->blocks = tmp; + heap->blocks[heap->block_cnt] = heap_alloc(block_size(heap->block_cnt)); + if(!heap->blocks[heap->block_cnt]) + return NULL;
- heap->blocks[heap->block_cnt++] = tmp; + heap->block_cnt++; + }
heap->last_block++; heap->offset = size;