Prevent error when modifying actions dict
This commit is contained in:
parent
37fc7f467a
commit
f40f7585ed
@ -339,15 +339,25 @@ class Packer:
|
|||||||
only once.
|
only once.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
for action in self._actions.values():
|
# Take a copy so we can modify self._actions in the loop.
|
||||||
|
actions = set(self._actions.values())
|
||||||
|
|
||||||
|
while actions:
|
||||||
|
action = actions.pop()
|
||||||
|
|
||||||
if action.path_action != PathAction.FIND_NEW_LOCATION:
|
if action.path_action != PathAction.FIND_NEW_LOCATION:
|
||||||
# This asset doesn't require a new location, so no rewriting necessary.
|
# This asset doesn't require a new location, so no rewriting necessary.
|
||||||
continue
|
continue
|
||||||
|
|
||||||
for usage in action.usages:
|
for usage in action.usages:
|
||||||
bfile_path = usage.block.bfile.filepath.absolute().resolve()
|
bfile_path = usage.block.bfile.filepath.absolute().resolve()
|
||||||
|
insert_new_action = bfile_path not in self._actions
|
||||||
|
|
||||||
self._actions[bfile_path].rewrites.append(usage)
|
self._actions[bfile_path].rewrites.append(usage)
|
||||||
|
|
||||||
|
if insert_new_action:
|
||||||
|
actions.add(self._actions[bfile_path])
|
||||||
|
|
||||||
def _path_in_project(self, path: pathlib.Path) -> bool:
|
def _path_in_project(self, path: pathlib.Path) -> bool:
|
||||||
try:
|
try:
|
||||||
# MUST use resolve(), otherwise /path/to/proj/../../asset.png
|
# MUST use resolve(), otherwise /path/to/proj/../../asset.png
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user