...
This commit is contained in:
@@ -1414,11 +1414,11 @@ END;
|
||||
{
|
||||
gpa_state : GPA = .{ alloc_count = 0 };
|
||||
gpa := gpa_create(@gpa_state);
|
||||
p1 := gpa.alloc(gpa.ctx, 64);
|
||||
p2 := gpa.alloc(gpa.ctx, 128);
|
||||
p1 := gpa.alloc(64);
|
||||
p2 := gpa.alloc(128);
|
||||
print("gpa allocs: {}\n", gpa_state.alloc_count); // gpa allocs: 2
|
||||
gpa.free(gpa.ctx, p1);
|
||||
gpa.free(gpa.ctx, p2);
|
||||
gpa.dealloc(p1);
|
||||
gpa.dealloc(p2);
|
||||
print("gpa final: {}\n", gpa_state.alloc_count); // gpa final: 0
|
||||
}
|
||||
|
||||
@@ -1429,11 +1429,11 @@ END;
|
||||
arena_state : Arena = ---;
|
||||
arena := arena_create(@arena_state, gpa3, 32);
|
||||
// First chunk fits 80 usable bytes
|
||||
a1 := arena.alloc(arena.ctx, 40);
|
||||
a2 := arena.alloc(arena.ctx, 40);
|
||||
a1 := arena.alloc(40);
|
||||
a2 := arena.alloc(40);
|
||||
print("arena chunks: {}\n", gpa_state3.alloc_count); // arena chunks: 1
|
||||
// Overflow → new chunk
|
||||
a3 := arena.alloc(arena.ctx, 16);
|
||||
a3 := arena.alloc(16);
|
||||
print("arena overflow: {}\n", gpa_state3.alloc_count); // arena overflow: 2
|
||||
// Verify memory works across chunks
|
||||
p1 : [*]u8 = xx a1;
|
||||
@@ -1456,15 +1456,29 @@ END;
|
||||
stack_buf : [128]u8 = ---;
|
||||
buf_state : BufAlloc = ---;
|
||||
bufalloc := buf_create(@buf_state, @stack_buf[0], 128);
|
||||
b1 := bufalloc.alloc(bufalloc.ctx, 24);
|
||||
b2 := bufalloc.alloc(bufalloc.ctx, 24);
|
||||
b1 := bufalloc.alloc(24);
|
||||
b2 := bufalloc.alloc(24);
|
||||
print("buf pos: {}\n", buf_state.pos); // buf pos: 48
|
||||
b3 := bufalloc.alloc(bufalloc.ctx, 200);
|
||||
b3 := bufalloc.alloc(200);
|
||||
b3_i : s64 = xx b3;
|
||||
print("buf overflow: {}\n", b3_i); // buf overflow: 0
|
||||
buf_reset(@buf_state);
|
||||
print("buf reset: {}\n", buf_state.pos); // buf reset: 0
|
||||
}
|
||||
|
||||
{
|
||||
if 1 == (1,) {
|
||||
print("1 == (1)\n");
|
||||
}
|
||||
|
||||
if (1,) == (1) {
|
||||
print("(1) == 1\n");
|
||||
}
|
||||
|
||||
if (1,) == 1 {
|
||||
print("1 == 1\n");
|
||||
}
|
||||
}
|
||||
|
||||
print("=== DONE ===\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user