From ceb1f4cd8092316dbe445dd208ecba96e0518a96 Mon Sep 17 00:00:00 2001 From: copygirl Date: Wed, 15 Nov 2023 08:36:09 +0100 Subject: [PATCH] Fix Iter.field for non-owned components --- src/iter.zig | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/iter.zig b/src/iter.zig index 3dcd80a..50dde6c 100644 --- a/src/iter.zig +++ b/src/iter.zig @@ -43,7 +43,9 @@ pub fn Iter(comptime ctx: anytype) type { pub fn field(self: Self, comptime T: type, index: usize) []T { var raw_ptr = c.ecs_field_w_size(self.raw, @sizeOf(T), @intCast(index)); var typed_ptr: [*]T = @alignCast(@ptrCast(raw_ptr)); - return typed_ptr[0..self.getCount()]; + const is_self = c.ecs_field_is_self(self.raw, @intCast(index)); + const count = if (is_self) self.getCount() else 1; + return typed_ptr[0..count]; } pub fn fieldId(self: Self, index: usize) Id(ctx) {