ecere/com/instance.ec: Simpler code in BlockPool::Remove()
authorJerome St-Louis <jerome@ecere.com>
Sun, 10 Apr 2016 06:09:49 +0000 (02:09 -0400)
committerJerome St-Louis <jerome@ecere.com>
Fri, 29 Apr 2016 16:27:10 +0000 (12:27 -0400)
ecere/src/com/instance.ec

index 1a887ee..172e528 100644 (file)
@@ -1031,6 +1031,7 @@ private struct BlockPool
 
    void Remove(MemBlock block)
    {
+      MemPart part = block.part;
       /*if(blockSize == 28)
          printf("BlockPool::Remove (%d)\n", blockSize);*/
       if(block.prev)
@@ -1052,14 +1053,13 @@ private struct BlockPool
          printf("Setting new free block: part = %x\n", block.part);
       }*/
 
-      block.part.blocksUsed--;
+      part.blocksUsed--;
       numBlocks--;
-      block.part.pool->usedSpace -= block.size;
+      part.pool->usedSpace -= block.size;
 
-      if(!block.part.blocksUsed && numBlocks && totalSize > numBlocks + numBlocks / 2)
+      if(!part.blocksUsed && numBlocks && totalSize > numBlocks + numBlocks / 2)
       {
          MemBlock next = free, prev = null;
-         MemPart part = block.part;
          free = null;
          totalSize -= part.size;
          /*if(blockSize == 28)