treesummaryrefslogcommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lmdb.zig11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/lmdb.zig b/src/lmdb.zig
index 8cc91f4..3802ec6 100644
--- a/src/lmdb.zig
+++ b/src/lmdb.zig
@@ -59,8 +59,10 @@ pub fn Cursor(comptime K: type, comptime V: type) type {
var val: lmdb.MDB_val = undefined;
return switch (lmdb.mdb_cursor_get(self.ptr, &key, &val, @intFromEnum(flags))) {
0 => {
- k.* = @as(*align(1) K, @ptrCast(key.mv_data)).*;
- return @as(?*align(1) V, @ptrCast(val.mv_data)).?.*;
+ k.* = std.mem.bytesToValue(K, key.mv_data.?);
+ return std.mem.bytesToValue(V, val.mv_data.?);
+ //k.* = @as(*align(1) K, @ptrCast(key.mv_data)).*;
+ //return @as(?*align(1) V, @ptrCast(val.mv_data)).?.*;
},
lmdb.MDB_NOTFOUND => null,
else => |err| {
@@ -136,7 +138,10 @@ pub fn Dbi(comptime K: type, comptime V: type) type {
};
var val: lmdb.MDB_val = undefined;
return switch (lmdb.mdb_get(self.txn.ptr, self.ptr, &key, &val)) {
- 0 => @as(?*align(1) V, @ptrCast(val.mv_data)).?.*,
+ 0 => {
+ return std.mem.bytesToValue(V, val.mv_data.?);
+ //@as(?*align(1) V, @ptrCast(val.mv_data)).?.*
+ },
else => |err| {
std.debug.print("get err: {}\n", .{err});
return null;