Jacek Caban : jscript: Fixed handling block_cnt in jsheap_alloc.

Alexandre Julliard julliard at winehq.org
Wed Feb 25 09:22:37 CST 2009


Module: wine
Branch: master
Commit: 18ee50e5d2bd0f55061215e80559f1f50152bf16
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=18ee50e5d2bd0f55061215e80559f1f50152bf16

Author: Jacek Caban <jacek at 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;




More information about the wine-cvs mailing list