]> git.llucax.com Git - software/dgc/naive.git/commitdiff
Make realloc() handle null as a malloc() result
authorLeandro Lucarella <llucax@gmail.com>
Sun, 30 Aug 2009 19:29:52 +0000 (16:29 -0300)
committerLeandro Lucarella <llucax@gmail.com>
Sun, 6 Sep 2009 19:27:46 +0000 (16:27 -0300)
gc/gc.d

diff --git a/gc/gc.d b/gc/gc.d
index f0471debcd85c0762bb66736aee1d41a0cb465e2..7d33622916fceb16a6aa04bc715dde21e61965ab 100644 (file)
--- a/gc/gc.d
+++ b/gc/gc.d
@@ -604,8 +604,11 @@ public:
 
         // We need to move the cell because of the lack of capacity, find
         // a free cell with the requested capacity (at least)
 
         // We need to move the cell because of the lack of capacity, find
         // a free cell with the requested capacity (at least)
-        Cell* new_cell = Cell.from_ptr(this.malloc(size));
-        assert (!(new_cell is null)); // out of memory is handled by malloc()
+        ptr = this.malloc(size, attr);
+        if (ptr is null) // in case onOutOfMemoryError didn't throw
+            return null;
+        Cell* new_cell = Cell.from_ptr(ptr);
+        assert (new_cell !is null);
 
         // Move cell attributes and contents
         new_cell.attr = cell.attr;
 
         // Move cell attributes and contents
         new_cell.attr = cell.attr;