summaryrefslogtreecommitdiff
path: root/src/libzisp/value
diff options
context:
space:
mode:
Diffstat (limited to 'src/libzisp/value')
-rw-r--r--src/libzisp/value/istr.zig4
-rw-r--r--src/libzisp/value/rune.zig4
2 files changed, 8 insertions, 0 deletions
diff --git a/src/libzisp/value/istr.zig b/src/libzisp/value/istr.zig
index 9834716..abd0447 100644
--- a/src/libzisp/value/istr.zig
+++ b/src/libzisp/value/istr.zig
@@ -46,6 +46,10 @@ pub fn getHeader(v: Value) *seq.Header {
return gc.istrHeader(header_ptr);
}
+pub fn getHeaderFromPtr(p: *Hval) *seq.Header {
+ return gc.istrHeader(p);
+}
+
// Zisp API
pub fn pred(v: Value) Value {
diff --git a/src/libzisp/value/rune.zig b/src/libzisp/value/rune.zig
index 154ec13..195210e 100644
--- a/src/libzisp/value/rune.zig
+++ b/src/libzisp/value/rune.zig
@@ -44,6 +44,10 @@ fn assertValidRune(s: []const u8) void {
pub fn pack(s: []const u8) Value {
assertValidRune(s);
+ return packForced(s);
+}
+
+pub fn packForced(s: []const u8) Value {
var v = Value{ .rune = .{ .name = 0 } };
const dest: [*]u8 = @ptrCast(&v.rune.name);
@memcpy(dest, s);