Repository navigation
Conversation
…between functions (n-delic#107) apply_remote_layout wrote the host's names without checking whether another local function still held them, so the split and rename passes crashed on UNIQUE(project_id, name) and the sync retried forever. Whichever function holds a name now steps aside to its func_XXXXXXXX name until the host's own name for it arrives. Overlays can share an address with main code, so a rename now applies to the function that held the old name instead of every function at that address.
|
Thanks for testing this. I think what your screenshot shows is a separate bug from this PR: #117 fixes the room sync ( |

Fixes #107. Room sync crashed on UNIQUE(project_id, name) in two ways: the host moved a name onto another address (split tail, swap, chain), or two functions shared an address (PS2 overlays) and a rename hit both. Whichever function holds a name now steps aside to its func_XXXXXXXX name until the host's name arrives, and a rename applies to the function that held the old name. Tested: three new regression tests in tests/test_collab.py fail without the fix and pass with it; ruff passes. Also ran live in a room on a PS2 project where the error used to repeat; it now syncs.