Skip to content

Commit 17ad37e

Browse files
committed
remove Prefix.fromSlice from prefix*()
* to workaround too aggressive compiler in ReleaseSmall
1 parent ac31a14 commit 17ad37e

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

src/Prefix.zig

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ pub fn unusedCapacitySlice(self: *Prefix) []u8 {
2222
}
2323

2424
pub fn checkedAppend(self: *Prefix, item: u8) error{BufOverflow}!void {
25-
@setRuntimeSafety(false);
2625
if (self.len > std.math.maxInt(u3) - 1) {
2726
return error.BufOverflow;
2827
}
@@ -35,20 +34,18 @@ pub fn append(self: *Prefix, item: u8) void {
3534
}
3635

3736
pub fn checkedAppendSlice(self: *Prefix, items: []const u8) error{BufOverflow}!void {
38-
@setRuntimeSafety(false);
3937
if (std.math.maxInt(u3) - self.len < items.len) {
4038
return error.BufOverflow;
4139
}
4240
std.mem.copyForwards(u8, self.unusedCapacitySlice(), items);
43-
self.len += @intCast(items.len);
41+
self.len += @truncate(items.len);
4442
}
4543

4644
pub fn appendSlice(self: *Prefix, items: []const u8) void {
4745
return self.checkedAppendSlice(items) catch unreachable;
4846
}
4947

5048
pub fn checkedWriteInt(self: *Prefix, T: type, value: T, endian: std.builtin.Endian) error{BufOverflow}!void {
51-
@setRuntimeSafety(false);
5249
const intsz = @divExact(@bitSizeOf(T), 8);
5350
if (std.math.maxInt(u3) - self.len < intsz) {
5451
return error.BufOverflow;
@@ -62,9 +59,10 @@ pub fn writeInt(self: *Prefix, T: type, value: T, endian: std.builtin.Endian) vo
6259
}
6360

6461
pub fn fromSlice(value: []const u8) Prefix {
65-
var result: Prefix = .{};
62+
var result: Prefix = .{
63+
.len = @intCast(value.len),
64+
};
6665
std.mem.copyForwards(u8, &result.buffer, value);
67-
result.len = @intCast(value.len);
6866
return result;
6967
}
7068

src/root.zig

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -371,10 +371,10 @@ pub fn prefixString(len: u32) Prefix {
371371
var result: Prefix = .{};
372372
switch (len) {
373373
0...0b00011111 => {
374-
return Prefix.fromSlice(&.{0b10100000 | (0b00011111 & @as(u8, @intCast(len)))});
374+
result.append(0b10100000 | (0b00011111 & @as(u8, @intCast(len))));
375375
},
376376
0b00011111 + 1...maxInt(u8) => {
377-
return Prefix.fromSlice(&.{
377+
result.appendSlice(&.{
378378
0xd9,
379379
@truncate(len),
380380
});
@@ -396,7 +396,7 @@ pub fn prefixBinary(len: u32) Prefix {
396396
var result: Prefix = .{};
397397
switch (len) {
398398
0...maxInt(u8) => {
399-
return Prefix.fromSlice(&.{
399+
result.appendSlice(&.{
400400
@intFromEnum(ContainerType.bin8),
401401
@as(u8, @truncate(len)),
402402
});
@@ -418,7 +418,7 @@ pub fn prefixArray(len: u32) Prefix {
418418
var result: Prefix = .{};
419419
switch (len) {
420420
0...0b00001111 => {
421-
return Prefix.fromSlice(&.{0b10010000 | (0b00001111 & @as(u8, @truncate(len)))});
421+
result.append(0b10010000 | (0b00001111 & @as(u8, @truncate(len))));
422422
},
423423
(0b00001111 + 1)...maxInt(u16) => {
424424
result.append(0xdc);
@@ -441,7 +441,7 @@ pub fn prefixMap(len: u32) Prefix {
441441
var result: Prefix = .{};
442442
switch (len) {
443443
0...0b00001111 => {
444-
return Prefix.fromSlice(&.{0b10000000 | (0b00001111 & @as(u8, @truncate(len)))});
444+
result.append(0b10000000 | (0b00001111 & @as(u8, @truncate(len))));
445445
},
446446
(0b00001111 + 1)...maxInt(u16) => {
447447
result.append(0xde);

0 commit comments

Comments
 (0)