Crash when removing module


#1

The current IntroJucer crashes when trying to remove a module. It is sometimes possible to remove modules but I can’t say under which circumstances it works or crashes.

This is the crash log I get in VS2012 (moduleId.text is 0xfeeefeee):

The Introjucer.exe!juce::CharPointer_UTF8::getAndAdvance() Zeile 153	C++

The Introjucer.exe!juce::CharacterFunctions::compare<juce::CharPointer_UTF8,juce::CharPointer_UTF8>(juce::CharPointer_UTF8 s1, juce::CharPointer_UTF8 s2) Zeile 398	C++

The Introjucer.exe!juce::CharPointer_UTF8::compare<juce::CharPointer_UTF8>(const juce::CharPointer_UTF8 other) Zeile 411	C++

The Introjucer.exe!juce::String::compare(const juce::String & other) Zeile 591	C++

The Introjucer.exe!juce::operator==(const juce::String & s1, const juce::String & s2) Zeile 549	C++

The Introjucer.exe!juce::operator==(const juce::var & v1, const juce::String & v2) Zeile 561	C++

The Introjucer.exe!EnabledModuleList::removeModule(const juce::String & moduleID) Zeile 742	C++

The Introjucer.exe!ConfigTreePanel::ModuleItem::handlePopupMenuResult(int resultCode) Zeile 61	C++

The Introjucer.exe!treeViewMenuItemChosen(int resultCode, juce::WeakReference<JucerTreeViewBase,juce::ReferenceCountedObject> item) Zeile 204	C++

The Introjucer.exe!juce::ModalCallbackFunction::FunctionCaller1<juce::WeakReference<JucerTreeViewBase,juce::ReferenceCountedObject> >::modalStateFinished(int returnValue) Zeile 287	C++

The Introjucer.exe!juce::ModalComponentManager::handleAsyncUpdate() Zeile 197	C++

The Introjucer.exe!juce::AsyncUpdater::AsyncUpdaterMessage::messageCallback() Zeile 34	C++

The Introjucer.exe!juce::WindowsMessageHelpers::dispatchMessageFromLParam(long lParam) Zeile 49	C++

The Introjucer.exe!juce::MessageManager::dispatchNextMessageOnSystemQueue(bool returnIfNoPendingMessages) Zeile 110	C++

The Introjucer.exe!juce::MessageManager::runDispatchLoopUntil(int millisecondsToRunFor) Zeile 115	C++

The Introjucer.exe!juce::MessageManager::runDispatchLoop() Zeile 97	C++

The Introjucer.exe!juce::JUCEApplicationBase::main() Zeile 239	C++

#2

Is that definitely the latest version? I fixed a bug just like that a few days ago..


#3

I just tried again with the GitHub zip download and it still occurs.

One other minor thing I noticed: When removing all exporters and then adding one again, the modules don’t know the juce location any more but use “…/…/juce” instead.


#4

Seems fine for me - anything in particular that replicates it??

And yes, it doesn't store a global location for the modules, each one just stores a path in its metadata, so if you remove them all it has no idea where they used to be. It's not wrong, that's just how it all works. But when I get a moment, I'll see if I can add a hack to e.g. make it re-use the last known path if it has nothing better to use.


#5

Very strange. This only seems to happen when the IntroJucer is started from Visual Studio.

I have a project that always crashes when juce_data_structures is removed (didn’t try any other modules to keep consistency) when started from the debugger, but I didn’t get it to crash when I start it normally or even attach the debugger later.

The crash also happens with the release version when started from VS while it is fine otherwise.


#6

Damn, that was a subtle one! Thanks, I managed to track it down.