Use std.mem.Allocator.dupe instead of @memcpy.

This commit is contained in:
andrew.kraevskii
2026-03-04 01:13:03 +03:00
parent 3348b2e91c
commit e3a4506194
4 changed files with 4 additions and 8 deletions

View File

@@ -51,8 +51,7 @@ pub const Property = struct {
.points => |slice| .{
.data = .{
.points = blk: {
const copy = try allocator.alloc(Point2_f, slice.len);
@memcpy(copy, slice);
const copy = try allocator.dupe(Point2_f, slice);
break :blk copy;
},
},

View File

@@ -15,8 +15,7 @@ fn appendShapeProperties(allocator: std.mem.Allocator, obj: *Object, props: []co
for (props) |prop| {
if (prop.data == .points) {
const pts = prop.data.points;
const copy = try allocator.alloc(Point2_f, pts.len);
@memcpy(copy, pts);
const copy = try allocator.dupe(Point2_f, pts);
try obj.properties.append(allocator, .{ .data = .{ .points = copy } });
} else {
try obj.properties.append(allocator, prop);

View File

@@ -84,8 +84,7 @@ fn randomizeObjectProperties(allocator: std.mem.Allocator, doc_size: *const Size
x += randFloat(rng, -40, 80);
y += randFloat(rng, -30, 60);
}
const slice = try allocator.alloc(Point2_f, list.items.len);
@memcpy(slice, list.items);
const slice = try allocator.dupe(Point2_f, list.items);
try obj.setProperty(allocator, .{ .data = .{ .points = slice } });
},
}

View File

@@ -676,8 +676,7 @@ fn drawPropertyEditor(canvas: *Canvas, obj: *Document.Object, prop: *const Prope
}
if (changed) {
const slice = canvas.allocator.alloc(Point2_f, list.items.len) catch return;
@memcpy(slice, list.items);
const slice = canvas.allocator.dupe(Point2_f, list.items) catch return;
obj.setProperty(canvas.allocator, .{ .data = .{ .points = slice } }) catch {
canvas.allocator.free(slice);
return;