| ... | ... | @@ -17,8 +17,8 @@ pub var c_allocator = Allocator { |
| 17 | 17 | }; |
| 18 | 18 | |
| 19 | 19 | fn cAlloc(self: &Allocator, n: usize, alignment: usize) -> %[]u8 { |
| 20 | | if (c.malloc(usize(n))) |mem| { |
| 21 | | @ptrCast(&u8, mem)[0..n] |
| 20 | if (c.malloc(usize(n))) |buf| { |
| 21 | @ptrCast(&u8, buf)[0..n] |
| 22 | 22 | } else { |
| 23 | 23 | error.OutOfMemory |
| 24 | 24 | } |
| ... | ... | @@ -29,8 +29,8 @@ fn cRealloc(self: &Allocator, old_mem: []u8, new_size: usize, alignment: usize) |
| 29 | 29 | old_mem[0..new_size] |
| 30 | 30 | } else { |
| 31 | 31 | const old_ptr = @ptrCast(&c_void, old_mem.ptr); |
| 32 | | if (c.realloc(old_ptr, usize(new_size))) |mem| { |
| 33 | | @ptrCast(&u8, mem)[0..new_size] |
| 32 | if (c.realloc(old_ptr, usize(new_size))) |buf| { |
| 33 | @ptrCast(&u8, buf)[0..new_size] |
| 34 | 34 | } else { |
| 35 | 35 | error.OutOfMemory |
| 36 | 36 | } |
| ... | ... | @@ -136,6 +136,14 @@ pub const IncrementingAllocator = struct { |
| 136 | 136 | } |
| 137 | 137 | }; |
| 138 | 138 | |
| 139 | test "c_allocator" { |
| 140 | if (builtin.link_libc) { |
| 141 | var slice = c_allocator.alloc(u8, 50) %% return; |
| 142 | defer c_allocator.free(slice); |
| 143 | slice = c_allocator.realloc(u8, slice, 100) %% return; |
| 144 | } |
| 145 | } |
| 146 | |
| 139 | 147 | test "IncrementingAllocator" { |
| 140 | 148 | const total_bytes = 100 * 1024 * 1024; |
| 141 | 149 | var inc_allocator = %%IncrementingAllocator.init(total_bytes); |