mirror of
https://github.com/Ukendio/jecs.git
synced 2025-04-24 17:10:03 +00:00
Prevent iterator invalidation in world:each
Some checks are pending
Analysis / Run Luau Analyze (push) Waiting to run
Deploy VitePress site to Pages / build (push) Waiting to run
Deploy VitePress site to Pages / Deploy (push) Blocked by required conditions
Styling / Run Stylua (push) Waiting to run
Unit Testing / Run Luau Tests (push) Waiting to run
Some checks are pending
Analysis / Run Luau Analyze (push) Waiting to run
Deploy VitePress site to Pages / build (push) Waiting to run
Deploy VitePress site to Pages / Deploy (push) Blocked by required conditions
Styling / Run Stylua (push) Waiting to run
Unit Testing / Run Luau Tests (push) Waiting to run
This commit is contained in:
parent
4841915af3
commit
02cb4ad7a2
1 changed files with 7 additions and 3 deletions
10
jecs.luau
10
jecs.luau
|
@ -1562,17 +1562,21 @@ local function world_each(world: World, id): () -> ()
|
|||
return NOOP
|
||||
end
|
||||
|
||||
local last = 0
|
||||
local entities = archetype.entities
|
||||
local row = #entities
|
||||
|
||||
return function(): any
|
||||
last += 1
|
||||
local entity = archetype.entities[last]
|
||||
local entity = entities[row]
|
||||
while not entity do
|
||||
archetype_id = next(idr_cache, archetype_id)
|
||||
if not archetype_id then
|
||||
return
|
||||
end
|
||||
archetype = archetypes[archetype_id]
|
||||
entities = archetype.entities
|
||||
row = #entities
|
||||
end
|
||||
row -= 1
|
||||
return entity
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue