Open GeminiCrafterMan opened 10 months ago
As of 3.2.5, this now shows when that happens.
Hmm did you build SLADE yourself? That kind of dialog should only show up in the debug build.
Helpful, though, think I might know what is happening - did you add a directory with files in it outside SLADE?
No, adding a directory with files doesn't cause it every time...
Usually, it's just one or two files in an existing directory, like a couple of new weapon sprites or a new ZScript file.
And yes, I did build SLADE myself by installing it through yay
.
I've also been having this happening, usually when adding and deleting files externally at the same time. Specifically, I've been porting some DECORATE to ZScript, and it seems to happen quite frequently when I (a) delete some file actors/foo.txt
, (b) add a file zscript/foo.zs
, and (c) modify the root DECORATE and ZSCRIPT to change the #include
s over. But it's proving difficult to replicate.
I've seen both the above error:
/usr/src/debug/wxwidgets/wxWidgets/include/wx/dynarray.h(196): assert ""n != (-1)"" failed in Remove(): removing inexistent element in wxArray::Remove
As well as what seems to be the inverse:
/usr/src/debug/wxwidgets/wxWidgets/src/gtk/dataview.cpp(3979): assert ""parent_node"" failed in ItemAdded(): Did you forget a call to ItemAdded()? The parent node is unknown to the wxGtkTreeModel
And I think a secret third one, but I didn't manage to copy that.
So I tried to reproduce it reliably. I made a dummy directory containing some empty files:
- a
- b
- c/
- d
Opened it in SLADE. Then I deleted c/d
and touched c/e
. SLADE noticed, picked it up, all fine.
I deleted c/e
and touched c/d
. SLADE noticed... that I deleted c/e
, but not that c/d
is back, and now it thinks c/
is empty. If I save the directory in SLADE, it now deletes c/d
. So, uh, that's, probably not great.
(I've also noticed that SLADE likes to completely rewrite even files that it doesn't think have changed at all, which tends to make vim freak out and/or reload them all. And it deletes files it was never aware of, even if it doesn't think they were deleted within SLADE.)
I touched c/d
again after saving, and now I'm back to where I started. Further messing around failed to produce a crash, although I did hit a couple more cases where an external change was just not noticed.
Very annoying! I'll start jotting down what changed before hitting OK on the dialog and maybe get some clues.
SLADE Version: 3.2.4 Operating System: Linux
Issue Details: This happens quite often when I do something like replace images in other programs, i.e. export some brightmaps from GIMP or edit some ZScript in VSCode. I don't do anything else, and I often accidentally leave SLADE open while doing this, since I had just aligned the sprites said brightmaps were based on, or am working on the code for the object that uses said sprites.
Stack Trace: