When I was debugging my application, I got that jassert on closing it:
// doh! If you don't delete all your windows before exiting, you're going to
// be leaking memory!
jassert(desktopComponents.size() == 0)
However, my app has only one window and I’m sure I delete it before exiting, at the destructor of the JUCEApplication::MyApp.
So I began doing more tests and I noted that when I change the sound driver on the the AudioDeviceSelectorComponent I always get that assert on exiting.
May I be worried about that? I think Windows XP deletes all memory used by the application, doesn’t it?
You should be very worried by assertions like that - that’s why they’re there!
It’s telling you that you’re leaking a window, and you say it only happens when you’re had an audio selector window open… hmm, maybe just perhaps you’re forgetting to delete your audio selector window…!
Thanks… however, I did a deleteAllChildren() on each component I have created (including the AudioDeviceSelectorComponent). Is there a way to find which is that hidden component?
Maybe when I change a device on AudioDeviceSelectorComponent’s combo, a pointer/thread controlling the old device is not deleted… how can I assure that the old thread was stopped/deleted?
Well, you’ve got an assert there telling you that the list of components isn’t empty. Components have names; just write a loop to dump out the contents of the list and print the names.