diff --git a/README.md b/README.md index 101ae15..fd40743 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,8 @@ This library is still very much work-in-progress and not ready for use. It's ava ```zig const std = @import("std"); -const flecs = @import("flecs-zig-ble"); -const Context = flecs.Context(void); +const flecszigble = @import("flecs-zig-ble"); +const Context = flecszigble.Context(void); const World = Context.World; const Iter = Context.Iter; @@ -22,7 +22,7 @@ const Velocity = struct { x: f32, y: f32 }; pub fn main() !void { var gpa = std.heap.GeneralPurposeAllocator(.{}){}; - flecs.init(gpa.allocator()); + flecszigble.init(gpa.allocator()); const world = try World.init(); defer world.deinit(); diff --git a/src/entity.zig b/src/entity.zig index 5527484..e91509e 100644 --- a/src/entity.zig +++ b/src/entity.zig @@ -2,9 +2,9 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const meta = @import("./meta.zig"); -const flecs = @import("./main.zig"); -const Path = flecs.Path; -const c = flecs.c; +const flecszigble = @import("./main.zig"); +const Path = flecszigble.Path; +const c = flecszigble.c; pub const EntityError = error{ /// Id is `0`. @@ -39,7 +39,7 @@ pub fn Entity(comptime ctx: anytype) type { return struct { const Self = @This(); - const Context = flecs.Context(ctx); + const Context = flecszigble.Context(ctx); const World = Context.World; const Id = Context.Id; @@ -133,7 +133,7 @@ pub fn Entity(comptime ctx: anytype) type { var desc = std.mem.zeroInit(c.ecs_entity_desc_t, .{ .sep = "".ptr, .name = n.ptr }); desc.add[0] = c.ecs_pair(c.EcsChildOf, parent_); scope = c.ecs_entity_init(world.raw, &desc); - if (scope == 0) return flecs.getLastErrorOrUnknown(); + if (scope == 0) return flecszigble.getLastErrorOrUnknown(); } else scope = found; }, } @@ -162,7 +162,7 @@ pub fn Entity(comptime ctx: anytype) type { return error.FoundChildOf; const result = c.ecs_entity_init(world.raw, &desc); - if (result == 0) return flecs.getLastErrorOrUnknown(); + if (result == 0) return flecszigble.getLastErrorOrUnknown(); return Self.fromRaw(world, result); } @@ -346,8 +346,8 @@ pub fn Entity(comptime ctx: anytype) type { const expect = @import("./test/expect.zig"); test "Entity get and set" { - flecs.init(std.testing.allocator); - var world = try flecs.World(void).initMinimal(); + flecszigble.init(std.testing.allocator); + var world = try flecszigble.World(void).initMinimal(); defer world.deinit(); const Position = struct { x: f32, y: f32 }; @@ -369,8 +369,8 @@ test "Entity get and set" { } test "Entity getMut" { - flecs.init(std.testing.allocator); - var world = try flecs.World(void).initMinimal(); + flecszigble.init(std.testing.allocator); + var world = try flecszigble.World(void).initMinimal(); defer world.deinit(); const Position = struct { x: f32, y: f32 }; @@ -396,8 +396,8 @@ test "Entity getMut" { } test "Entity set and get with pair type" { - flecs.init(std.testing.allocator); - var world = try flecs.World(void).initMinimal(); + flecszigble.init(std.testing.allocator); + var world = try flecszigble.World(void).initMinimal(); defer world.deinit(); const Position = struct { x: f32, y: f32 }; diff --git a/src/id.zig b/src/id.zig index ce52b8b..6380a99 100644 --- a/src/id.zig +++ b/src/id.zig @@ -1,5 +1,5 @@ -const flecs = @import("./main.zig"); -const c = flecs.c; +const flecszigble = @import("./main.zig"); +const c = flecszigble.c; pub const IdError = error{ /// Id is `0`. @@ -16,7 +16,7 @@ pub fn Id(comptime ctx: anytype) type { return struct { const Self = @This(); - const Context = flecs.Context(ctx); + const Context = flecszigble.Context(ctx); const World = Context.World; const Entity = Context.Entity; const Pair = Context.Pair; diff --git a/src/iter.zig b/src/iter.zig index 02a88b4..bba4ac8 100644 --- a/src/iter.zig +++ b/src/iter.zig @@ -1,11 +1,11 @@ -const flecs = @import("./main.zig"); -const c = flecs.c; +const flecszigble = @import("./main.zig"); +const c = flecszigble.c; pub fn Iter(comptime ctx: anytype) type { return struct { const Self = @This(); - const Context = flecs.Context(ctx); + const Context = flecszigble.Context(ctx); const World = Context.World; const Entity = Context.Entity; const Id = Context.Id; @@ -19,14 +19,14 @@ pub fn Iter(comptime ctx: anytype) type { } pub fn fromRawValue(world: *World, value: c.ecs_iter_t) !Self { - const raw = try flecs.allocator.create(c.ecs_iter_t); + const raw = try flecszigble.allocator.create(c.ecs_iter_t); raw.* = value; return .{ .world = world, .raw = raw, .owned = true }; } pub fn deinit(self: Self) void { if (self.isValid()) c.ecs_iter_fini(self.raw); - if (self.owned) flecs.allocator.destroy(self.raw); + if (self.owned) flecszigble.allocator.destroy(self.raw); } pub fn isValid(self: Self) bool { diff --git a/src/pair.zig b/src/pair.zig index 3219223..9884c86 100644 --- a/src/pair.zig +++ b/src/pair.zig @@ -1,5 +1,5 @@ -const flecs = @import("./main.zig"); -const c = flecs.c; +const flecszigble = @import("./main.zig"); +const c = flecszigble.c; pub const PairError = error{ /// Id is `0`. @@ -24,7 +24,7 @@ pub fn Pair(comptime ctx: anytype) type { return struct { const Self = @This(); - const Context = flecs.Context(ctx); + const Context = flecszigble.Context(ctx); const World = Context.World; const Entity = Context.Entity; const Id = Context.Id; diff --git a/src/test/flecs/entity.zig b/src/test/flecs/entity.zig index c228f58..cccf644 100644 --- a/src/test/flecs/entity.zig +++ b/src/test/flecs/entity.zig @@ -7,17 +7,17 @@ const alloc = std.testing.allocator; const expect = @import("../expect.zig"); const util = @import("../util.zig"); -const flecs = @import("../../main.zig"); -const FlecsError = flecs.FlecsError; -const Path = flecs.Path; -const c = flecs.c; +const flecszigble = @import("../../main.zig"); +const FlecsError = flecszigble.FlecsError; +const Path = flecszigble.Path; +const c = flecszigble.c; -const Context = flecs.Context(void); +const Context = flecszigble.Context(void); const Entity = Context.Entity; const World = Context.World; test "Entity_init_id" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -26,20 +26,20 @@ test "Entity_init_id" { } test "Entity_init_id_name" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); const e = try world.entity(.{ .name = "foo" }, .{}); try expect.equal("foo", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("foo", "{}", .{path}); } test "Entity_init_id_path" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -48,7 +48,7 @@ test "Entity_init_id_path" { const e = try world.entity(.{ .path = e_path }, .{}); try expect.equal("child", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("parent.child", "{}", .{path}); } @@ -56,7 +56,7 @@ test "Entity_init_id_path" { test "Entity_init_id_add_1_comp" { const TagA = struct {}; - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -70,7 +70,7 @@ test "Entity_init_id_add_2_comp" { const TagA = struct {}; const TagB = struct {}; - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -83,7 +83,7 @@ test "Entity_init_id_add_2_comp" { } test "Entity_init_id_w_scope" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -98,7 +98,7 @@ test "Entity_init_id_w_scope" { } test "Entity_init_id_name_w_scope" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -113,13 +113,13 @@ test "Entity_init_id_name_w_scope" { try expect.true(e.has(.{ c.EcsChildOf, scope })); try expect.equal("child", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("parent.child", "{}", .{path}); } test "Entity_init_id_path_w_scope" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -135,13 +135,13 @@ test "Entity_init_id_path_w_scope" { try expect.equal("grandchild", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("parent.child.grandchild", "{}", .{path}); } test "Entity_init_id_fullpath_w_scope" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -151,19 +151,19 @@ test "Entity_init_id_fullpath_w_scope" { _ = world.setScope(scope); try expect.equal(scope, world.scope()); - const p = try Path.fromString("::parent.child.grandchild", .{ .root_sep = "::", .sep = "." }, flecs.allocator); + const p = try Path.fromString("::parent.child.grandchild", .{ .root_sep = "::", .sep = "." }, flecszigble.allocator); defer p.deinit(); const e = try world.entity(.{ .path = p }, .{}); try expect.equal("grandchild", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("parent.child.grandchild", "{}", .{path}); } test "Entity_init_id_fullpath_w_scope_existing" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -173,7 +173,7 @@ test "Entity_init_id_fullpath_w_scope_existing" { _ = world.setScope(scope); try expect.equal(scope, world.scope()); - const p = try Path.fromString("::parent.child.grandchild", .{ .root_sep = "::", .sep = "." }, flecs.allocator); + const p = try Path.fromString("::parent.child.grandchild", .{ .root_sep = "::", .sep = "." }, flecszigble.allocator); defer p.deinit(); const e = try world.entity(.{ .path = p }, .{}); @@ -182,7 +182,7 @@ test "Entity_init_id_fullpath_w_scope_existing" { try expect.equal("grandchild", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("parent.child.grandchild", "{}", .{path}); } @@ -190,7 +190,7 @@ test "Entity_init_id_fullpath_w_scope_existing" { test "Entity_init_id_name_1_comp" { const TagA = struct {}; - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -200,7 +200,7 @@ test "Entity_init_id_name_1_comp" { try expect.true(e.has(TagA)); try expect.equal("foo", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("foo", "{}", .{path}); } @@ -209,7 +209,7 @@ test "Entity_init_id_name_2_comp" { const TagA = struct {}; const TagB = struct {}; - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -220,7 +220,7 @@ test "Entity_init_id_name_2_comp" { try expect.true(e.has(TagA)); try expect.equal("foo", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("foo", "{}", .{path}); } @@ -229,7 +229,7 @@ test "Entity_init_id_name_2_comp_w_scope" { const TagA = struct {}; const TagB = struct {}; - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -246,7 +246,7 @@ test "Entity_init_id_name_2_comp_w_scope" { try expect.true(e.has(TagA)); try expect.equal("child", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("parent.child", "{}", .{path}); } @@ -254,7 +254,7 @@ test "Entity_init_id_name_2_comp_w_scope" { test "Entity_id_add_1_comp" { const TagA = struct {}; - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -270,7 +270,7 @@ test "Entity_id_add_2_comp" { const TagA = struct {}; const TagB = struct {}; - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -285,22 +285,22 @@ test "Entity_id_add_2_comp" { } test "Entity_init_id_path_w_sep" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); - const p = try Path.fromString("parent::child", .{ .root_sep = null, .sep = "::" }, flecs.allocator); + const p = try Path.fromString("parent::child", .{ .root_sep = null, .sep = "::" }, flecszigble.allocator); defer p.deinit(); const e = try world.entity(.{ .path = p }, .{}); try expect.equal("child", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("parent.child", "{}", .{path}); } test "Entity_find_id_name" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -312,7 +312,7 @@ test "Entity_find_id_name" { } test "Entity_find_w_existing_id_name" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -327,7 +327,7 @@ test "Entity_find_w_existing_id_name" { } test "Entity_find_id_name_w_scope" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -340,7 +340,7 @@ test "Entity_find_id_name_w_scope" { const e = try world.entity(.{ .name = "child" }, .{}); try expect.equal("child", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("parent.child", "{}", .{path}); @@ -349,7 +349,7 @@ test "Entity_find_id_name_w_scope" { } test "Entity_find_id_path" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -358,7 +358,7 @@ test "Entity_find_id_path" { const e = try world.entity(.{ .path = e_path }, .{}); try expect.equal("child", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("parent.child", "{}", .{path}); @@ -367,7 +367,7 @@ test "Entity_find_id_path" { } test "Entity_find_id_path_w_scope" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -382,7 +382,7 @@ test "Entity_find_id_path_w_scope" { const e = try world.entity(.{ .path = e_path }, .{}); try expect.equal("grandchild", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("parent.child.grandchild", "{}", .{path}); @@ -391,7 +391,7 @@ test "Entity_find_id_path_w_scope" { } test "Entity_find_id_name_match" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -403,7 +403,7 @@ test "Entity_find_id_name_match" { } test "Entity_find_id_name_match_w_scope" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -416,7 +416,7 @@ test "Entity_find_id_name_match_w_scope" { const e = try world.entity(.{ .name = "child" }, .{}); try expect.equal("child", e.name()); - const path = try e.path(flecs.allocator); + const path = try e.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("parent.child", "{}", .{path}); @@ -432,7 +432,7 @@ test "Entity_find_id_name_match_w_scope" { } test "Entity_find_id_path_match" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -446,7 +446,7 @@ test "Entity_find_id_path_match" { } test "Entity_find_id_path_match_w_scope" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -473,7 +473,7 @@ test "Entity_find_id_path_match_w_scope" { } test "Entity_find_id_name_mismatch" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -490,7 +490,7 @@ test "Entity_find_id_name_mismatch" { } test "Entity_find_id_name_mismatch_w_scope" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -511,7 +511,7 @@ test "Entity_find_id_name_mismatch_w_scope" { } test "Entity_find_id_path_mismatch" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -530,7 +530,7 @@ test "Entity_find_id_path_mismatch" { } test "Entity_find_id_path_mismatch_w_scope" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -559,7 +559,7 @@ test "Entity_find_id_path_mismatch_w_scope" { test "Entity_find_id_add_1_comp" { const TagA = struct {}; - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -577,7 +577,7 @@ test "Entity_find_id_add_2_comp" { const TagA = struct {}; const TagB = struct {}; - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -594,7 +594,7 @@ test "Entity_find_id_add_2_comp" { } test "Entity_init_w_scope_name" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); @@ -609,13 +609,13 @@ test "Entity_init_w_scope_name" { const child = try world.entity(.{ .name = "foo" }, .{}); try expect.equal("foo", child.name()); - const path = try child.path(flecs.allocator); + const path = try child.path(flecszigble.allocator); defer path.deinit(); try expect.fmt("parent.foo.foo", "{}", .{path}); } test "Entity_init_w_core_name" { - flecs.init(alloc); + flecszigble.init(alloc); var world = try World.initMinimal(); defer world.deinit(); diff --git a/src/test/flecs/world.zig b/src/test/flecs/world.zig index b731257..db052ab 100644 --- a/src/test/flecs/world.zig +++ b/src/test/flecs/world.zig @@ -7,10 +7,10 @@ const alloc = std.testing.allocator; const expect = @import("./../expect.zig"); const util = @import("./../util.zig"); -const flecs = @import("../../main.zig"); -const c = flecs.c; +const flecszigble = @import("../../main.zig"); +const c = flecszigble.c; -const Context = flecs.Context(void); +const Context = flecszigble.Context(void); const World = Context.World; const Iter = Context.Iter; const Entity = Context.Entity; @@ -30,7 +30,7 @@ fn move(it: Iter) void { } test "World_progress_w_0" { - flecs.init(std.testing.allocator); + flecszigble.init(std.testing.allocator); var world = try World.init(); defer world.deinit(); @@ -67,7 +67,7 @@ test "World_progress_w_0" { } test "World_progress_w_t" { - flecs.init(std.testing.allocator); + flecszigble.init(std.testing.allocator); var world = try World.init(); defer world.deinit(); diff --git a/src/test/util.zig b/src/test/util.zig index ac22463..1f49542 100644 --- a/src/test/util.zig +++ b/src/test/util.zig @@ -3,10 +3,10 @@ const expect = std.testing.expect; const expectEql = std.testing.expectEqual; const expectStrEql = std.testing.expectEqualStrings; -const flecs = @import("../main.zig"); -const c = flecs.c; +const flecszigble = @import("../main.zig"); +const c = flecszigble.c; -const context = flecs.Context(void); +const context = flecszigble.Context(void); const Entity = context.Entity; const Iter = context.Iter; const Id = context.Id; diff --git a/src/world.zig b/src/world.zig index e5ba34d..97f95e8 100644 --- a/src/world.zig +++ b/src/world.zig @@ -2,45 +2,44 @@ const std = @import("std"); const Allocator = std.mem.Allocator; const meta = @import("./meta.zig"); -const flecs = @import("./main.zig"); -const EntityError = flecs.EntityError; -const Path = flecs.Path; -const c = flecs.c; +const flecszigble = @import("./main.zig"); +const Path = flecszigble.Path; +const c = flecszigble.c; pub fn World(comptime ctx: anytype) type { return struct { const Self = @This(); - const Context = flecs.Context(ctx); + const Context = flecszigble.Context(ctx); const Entity = Context.Entity; const Iter = Context.Iter; raw: *c.ecs_world_t, pub fn init() !*Self { - std.debug.assert(flecs.is_initialized); - var result = try flecs.allocator.create(Self); + std.debug.assert(flecszigble.is_initialized); + var result = try flecszigble.allocator.create(Self); result.raw = c.ecs_init().?; return result; } pub fn initWithArgs(args: [][*:0]const u8) !*Self { - std.debug.assert(flecs.is_initialized); - var result = try flecs.allocator.create(Self); + std.debug.assert(flecszigble.is_initialized); + var result = try flecszigble.allocator.create(Self); result.raw = c.ecs_init_w_args(args.len, args.ptr).?; return result; } pub fn initMinimal() !*Self { - std.debug.assert(flecs.is_initialized); - var result = try flecs.allocator.create(Self); + std.debug.assert(flecszigble.is_initialized); + var result = try flecszigble.allocator.create(Self); result.raw = c.ecs_mini().?; return result; } pub fn deinit(self: *Self) void { _ = c.ecs_fini(self.raw); - flecs.allocator.destroy(self); + flecszigble.allocator.destroy(self); } pub fn progress(self: *Self, delta_time: f32) bool { @@ -113,7 +112,7 @@ pub fn World(comptime ctx: anytype) type { }); const result = c.ecs_component_init(self.raw, &desc); - if (result == 0) return flecs.getLastErrorOrUnknown(); + if (result == 0) return flecszigble.getLastErrorOrUnknown(); Context.lookupMut(T).* = result; return Entity.fromRaw(self, result); } @@ -176,7 +175,7 @@ pub fn World(comptime ctx: anytype) type { desc.query.filter.expr = expr; const result = c.ecs_system_init(self.raw, &desc); - if (result == 0) return flecs.getLastErrorOrUnknown(); + if (result == 0) return flecszigble.getLastErrorOrUnknown(); return Entity.fromRaw(self, result); } @@ -186,7 +185,7 @@ pub fn World(comptime ctx: anytype) type { func: SystemCallback, pub fn init(world: *Self, callback: SystemCallback) !*SystemCallbackContext { - var result = try flecs.allocator.create(SystemCallbackContext); + var result = try flecszigble.allocator.create(SystemCallbackContext); result.world = world; result.func = callback; return result; @@ -194,7 +193,7 @@ pub fn World(comptime ctx: anytype) type { fn free(context: ?*anyopaque) callconv(.C) void { const self: *SystemCallbackContext = @alignCast(@ptrCast(context)); - flecs.allocator.destroy(self); + flecszigble.allocator.destroy(self); } // FIXME: Dependency loop.