remove need to dupe strings to command structs
This commit is contained in:
parent
708ef45600
commit
0cd47be7ac
2 changed files with 4 additions and 5 deletions
|
@ -157,7 +157,7 @@ pub const Command = struct {
|
||||||
pub const Load = struct {
|
pub const Load = struct {
|
||||||
pub const base_tag = Tag.load;
|
pub const base_tag = Tag.load;
|
||||||
base: Command,
|
base: Command,
|
||||||
path: []u8,
|
path: []const u8,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub const Quicksave = struct {
|
pub const Quicksave = struct {
|
||||||
|
@ -568,7 +568,7 @@ pub const Lang = struct {
|
||||||
f32 => try std.fmt.parseFloat(f32, arg),
|
f32 => try std.fmt.parseFloat(f32, arg),
|
||||||
u64 => try std.fmt.parseInt(u64, arg, 10),
|
u64 => try std.fmt.parseInt(u64, arg, 10),
|
||||||
usize => try std.fmt.parseInt(usize, arg, 10),
|
usize => try std.fmt.parseInt(usize, arg, 10),
|
||||||
[]const u8 => try self.allocator.dupe(u8, arg),
|
[]const u8 => arg,
|
||||||
else => @compileError("parameter struct has unsupported type " ++ @typeName(cmd_field.field_type)),
|
else => @compileError("parameter struct has unsupported type " ++ @typeName(cmd_field.field_type)),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -586,8 +586,7 @@ pub const Lang = struct {
|
||||||
usize => try std.fmt.parseInt(usize, arg, 10),
|
usize => try std.fmt.parseInt(usize, arg, 10),
|
||||||
i32 => try std.fmt.parseInt(i32, arg, 10),
|
i32 => try std.fmt.parseInt(i32, arg, 10),
|
||||||
f32 => try std.fmt.parseFloat(f32, arg),
|
f32 => try std.fmt.parseFloat(f32, arg),
|
||||||
[]u8 => try self.allocator.dupe(u8, arg),
|
[]const u8 => arg,
|
||||||
[]const u8 => try self.allocator.dupe(u8, arg),
|
|
||||||
else => @compileError("Invalid parameter type (" ++ @typeName(cmd_field.field_type) ++ ") left on command struct " ++ @typeName(command_struct) ++ "."),
|
else => @compileError("Invalid parameter type (" ++ @typeName(cmd_field.field_type) ++ ") left on command struct " ++ @typeName(command_struct) ++ "."),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,7 @@ pub fn doRepl(allocator: *std.mem.Allocator, args_it: anytype) !void {
|
||||||
// TODO: deliberate memleak here. we only allocate this
|
// TODO: deliberate memleak here. we only allocate this
|
||||||
// command once, for the start of the file, so.
|
// command once, for the start of the file, so.
|
||||||
var load_cmd = try allocator.create(langs.Command.Load);
|
var load_cmd = try allocator.create(langs.Command.Load);
|
||||||
std.mem.copy(u8, load_cmd.path, ":0");
|
load_cmd.path = ":0";
|
||||||
load_cmd.base.tag = langs.Command.Tag.load;
|
load_cmd.base.tag = langs.Command.Tag.load;
|
||||||
|
|
||||||
// taking address is fine, because load_cmd lives in the lifetime
|
// taking address is fine, because load_cmd lives in the lifetime
|
||||||
|
|
Loading…
Reference in a new issue