use zig allocator, not libc, in host

This commit is contained in:
Folkert 2021-09-10 10:15:41 +02:00
parent fc15004714
commit 1496ee2e70
2 changed files with 9 additions and 5 deletions

View File

@ -77,12 +77,14 @@ export fn roc_panic(c_ptr: *c_void, tag_id: u32) callconv(.C) void {
const Unit = extern struct {};
pub fn main() u8 {
const allocator = std.heap.page_allocator;
const size = @intCast(usize, roc__mainForHost_size());
const raw_output = std.heap.c_allocator.allocAdvanced(u8, @alignOf(u64), @intCast(usize, size), .at_least) catch unreachable;
const raw_output = allocator.allocAdvanced(u8, @alignOf(u64), @intCast(usize, size), .at_least) catch unreachable;
var output = @ptrCast([*]u8, raw_output);
defer {
std.heap.c_allocator.free(raw_output);
allocator.free(raw_output);
}
var ts1: std.os.timespec = undefined;
@ -122,12 +124,14 @@ fn to_seconds(tms: std.os.timespec) f64 {
}
fn call_the_closure(closure_data_pointer: [*]u8) void {
const allocator = std.heap.page_allocator;
const size = roc__mainForHost_1_Fx_result_size();
const raw_output = std.heap.c_allocator.allocAdvanced(u8, @alignOf(u64), @intCast(usize, size), .at_least) catch unreachable;
const raw_output = allocator.allocAdvanced(u8, @alignOf(u64), @intCast(usize, size), .at_least) catch unreachable;
var output = @ptrCast([*]u8, raw_output);
defer {
std.heap.c_allocator.free(raw_output);
allocator.free(raw_output);
}
const flags: u8 = 0;

View File

@ -76,7 +76,7 @@ const RocCallResult = extern struct { flag: u64, content: RocList };
const Unit = extern struct {};
pub fn main() u8 {
pub export fn main() u8 {
const stdout = std.io.getStdOut().writer();
const stderr = std.io.getStdErr().writer();