summaryrefslogtreecommitdiff
path: root/src/libzisp/value/ptr.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/libzisp/value/ptr.zig')
-rw-r--r--src/libzisp/value/ptr.zig20
1 files changed, 3 insertions, 17 deletions
diff --git a/src/libzisp/value/ptr.zig b/src/libzisp/value/ptr.zig
index fe13af5..e1fadf2 100644
--- a/src/libzisp/value/ptr.zig
+++ b/src/libzisp/value/ptr.zig
@@ -31,27 +31,13 @@ pub fn assertForeign(v: Value) void {
}
}
-pub fn checkForeignRange(ptr: *anyopaque) bool {
- const int = @intFromPtr(ptr);
- return int <= std.math.maxInt(u50);
-}
-
-fn assertForeignRange(ptr: *anyopaque) void {
- if (!checkForeignRange(ptr)) {
- std.debug.print("foreign pointer out of range: {}\n", .{ptr});
- @panic("foreign pointer out of range");
- }
-}
-
-pub fn packForeign(ptr: *anyopaque) Value {
- assertForeignRange(ptr);
- const int: u50 = @intCast(@intFromPtr(ptr));
+pub fn packForeign(int: u50) Value {
return .{ .fptr = .{ .value = int } };
}
-pub fn unpackForeign(v: Value) *anyopaque {
+pub fn unpackForeign(v: Value) u50 {
assertForeign(v);
- return @ptrFromInt(v.fptr.value);
+ return v.fptr.value;
}
// Zisp Pointers