Paradise
Paradise copied to clipboard
/datum/async_input/autocomplete keeps hard references which causes GC issues
Issue Description: As the title suggests. Somebody having the jump to mob window open as an observer will cause all mobs on the server to fail GCing. I also managed to have it not properly close on me which caused the top two and last GC issues maybe. Maybe not and this always happens even if you close it, I didn't check yet. I got a JS exception when opening the window. So that might have caused the two since the callback should be cleared after the window closes.
[2022-10-05T20:52:45] Found /mob/dead/observer [0x300003b] in /datum/browser's [0x2100793a] user var. World -> /datum/browser
[2022-10-05T20:52:48] Found /mob/dead/observer [0x300003b] in /datum/async_input/autocomplete's [0x21010307] user var. World -> /datum/async_input/autocomplete
[2022-10-05T20:52:48] Found /mob/dead/observer [0x300003b] in list World -> /datum/async_input/autocomplete [0x21010307] -> choices (list)[Kahtajrjri%20Hadii%20%282%29%20%5bghost%5d]
[2022-10-05T20:52:49] Found /mob/dead/observer [0x300003b] in /datum/callback's [0x21015cd7] object var. World -> /datum/callback
Steps to reproduce the problem:
- Have a mob and aghost
- Open the jump to mob or follow mob window as an observer
- Close the window (I had a js exception somehow which might have caused the top two GC issues, unsure)
- Jump back into your mob
When did the problem start happening: Prob since forever
Extra information:
When input_autocomplete_async
is called, a list of choices is given, getpois
is used for this. It would be better if it were to return UID
s instead. Currently getpois
is used in three spots, which is manageable.