hook up logging to wasm, example uses new zig-js package

This commit is contained in:
Mitchell Hashimoto
2022-12-04 13:16:54 -08:00
parent 437f1772f1
commit c48d8cd151
9 changed files with 4547 additions and 48 deletions

View File

@@ -37,6 +37,18 @@ pub export fn malloc(len: usize) ?[*]u8 {
return alloc_(len) catch return null;
}
fn alloc_(len: usize) ![*]u8 {
// Create the allocation
const slice = try alloc.alloc(u8, len);
errdefer alloc.free(slice);
// Store the size so we can deallocate later
try allocs.putNoClobber(alloc, slice.ptr, slice.len);
errdefer _ = allocs.remove(slice.ptr);
return slice.ptr;
}
/// Free an allocation from malloc.
pub export fn free(ptr: ?[*]u8) void {
if (ptr) |v| {
@@ -79,18 +91,6 @@ pub fn toModuleOwned(ptr: anytype) void {
_ = allocs.remove(casted);
}
fn alloc_(len: usize) ![*]u8 {
// Create the allocation
const slice = try alloc.alloc(u8, len);
errdefer alloc.free(slice);
// Store the size so we can deallocate later
try allocs.putNoClobber(alloc, slice.ptr, slice.len);
errdefer _ = allocs.remove(slice.ptr);
return slice.ptr;
}
test "basics" {
const testing = std.testing;
var buf = malloc(32).?;