99public class SystemBuilder {
1010
1111 private final World world ;
12- private final Arena arena ;
1312 private final MemorySegment desc ;
13+ private final Arena arena ;
1414 private int termCount = 0 ;
1515 private static final long TERM_SIZE = ecs_term_t .layout ().byteSize ();
1616 private Query .IterCallback iterCallback ;
@@ -27,12 +27,10 @@ public SystemBuilder(World world) {
2727 public SystemBuilder (World world , String name ) {
2828 this (world );
2929 MemorySegment nameSegment = this .arena .allocateFrom (name );
30-
31- try (Arena tempArena = Arena .ofConfined ()) {
32- MemorySegment entityDescTemp = ecs_entity_desc_t .allocate (tempArena );
33- ecs_entity_desc_t .name (entityDescTemp , nameSegment );
34- ecs_system_desc_t .entity (this .desc , flecs_h .ecs_entity_init (world .nativeHandle (), entityDescTemp ));
35- }
30+
31+ MemorySegment entityDescTemp = ecs_entity_desc_t .allocate (this .arena );
32+ ecs_entity_desc_t .name (entityDescTemp , nameSegment );
33+ ecs_system_desc_t .entity (this .desc , flecs_h .ecs_entity_init (world .nativeHandle (), entityDescTemp ));
3634 }
3735
3836 public SystemBuilder kind (long phase ) {
@@ -243,6 +241,8 @@ private FlecsSystem build() {
243241
244242 this .world .registerSystemCallbacks (systemId , this .iterCallback , this .runCallback , this .entityCallback );
245243
244+ this .arena .close ();
245+
246246 return new FlecsSystem (this .world , systemId );
247247 }
248248}
0 commit comments