Context uses an allocator, currently a simple c_allocator.
parent
c5e3b7b901
commit
a6cfa88f79
|
@ -1,28 +1,27 @@
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
const fmt = std.fmt;
|
const fmt = std.fmt;
|
||||||
const heap = std.heap;
|
|
||||||
const testing = std.testing;
|
|
||||||
|
|
||||||
const print = std.debug.print;
|
const print = std.debug.print;
|
||||||
|
|
||||||
pub const Context = struct {
|
pub const Context = struct {
|
||||||
rundir: [] u8,
|
rundir: [] u8,
|
||||||
|
allocator: std.mem.Allocator,
|
||||||
const Self = @This();
|
const Self = @This();
|
||||||
|
|
||||||
pub fn init() !Self {
|
pub fn init(allocator: std.mem.Allocator) !Self {
|
||||||
var rundir = try std.heap.c_allocator.dupeZ(u8, "/tmp/libipc-run/");
|
var rundir = try allocator.dupeZ(u8, "/tmp/libipc-run/");
|
||||||
return Self { .rundir = rundir };
|
return Self { .rundir = rundir, .allocator = allocator };
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn deinit(self: *Self) void {
|
pub fn deinit(self: *Self) void {
|
||||||
std.heap.c_allocator.free(self.rundir);
|
self.allocator.free(self.rundir);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export fn ipc_context_init (ptr: **Context) callconv(.C) i32 {
|
export fn ipc_context_init (ptr: **Context) callconv(.C) i32 {
|
||||||
ptr.* = std.heap.c_allocator.create(Context) catch return 1;
|
ptr.* = std.heap.c_allocator.create(Context) catch return 1;
|
||||||
|
|
||||||
ptr.*.* = Context.init() catch |err| {
|
ptr.*.* = Context.init(std.heap.c_allocator) catch |err| {
|
||||||
print ("libipc: error while init context: {}\n", .{err});
|
print ("libipc: error while init context: {}\n", .{err});
|
||||||
return 1;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
Reference in New Issue