Hi Jules,
The exception I get from the Juce Demo Plugin running inside the Juce Plugin Host is:
Unhandled exception at 0x7453CB49 in PluginHost.exe: 0xC0000005: Access violation reading location 0x00000000.
The stack trace is:
00000000() Unknown
[Frames below may be incorrect and/or missing]
> JuceDemoPlugin.vst3!juce::Component::setBounds(int x, int y, int w, int h) Line 1185 C++
JuceDemoPlugin.vst3!juce::Component::setBounds(const juce::Rectangle<int> & r) Line 1254 C++
JuceDemoPlugin.vst3!juce::JuceVST3EditController::JuceVST3Editor::ContentWrapperComponent::resized() Line 478 C++
JuceDemoPlugin.vst3!juce::Component::sendMovedResizedMessages(bool wasMoved, bool wasResized) Line 1209 C++
JuceDemoPlugin.vst3!juce::Component::setBounds(int x, int y, int w, int h) Line 1191 C++
JuceDemoPlugin.vst3!juce::Component::setSize(int w, int h) Line 1234 C++
JuceDemoPlugin.vst3!juce::JuceVST3EditController::JuceVST3Editor::ContentWrapperComponent::resizeHostWindow() Line 495 C++
JuceDemoPlugin.vst3!juce::JuceVST3EditController::JuceVST3Editor::attached(void * parent, const char * type) Line 365 C++
PluginHost.exe!juce::VST3Classes::VST3PluginWindow::attachPluginWindow() Line 1624 C++
PluginHost.exe!juce::VST3Classes::VST3PluginWindow::componentVisibilityChanged() Line 1546 C++
PluginHost.exe!juce::ComponentMovementWatcher::componentVisibilityChanged(juce::Component & __formal) Line 122 C++
PluginHost.exe!juce::ListenerList<juce::ComponentListener,juce::Array<juce::ComponentListener *,juce::DummyCriticalSection,0> >::callChecked<juce::Component::BailOutChecker,juce::Component &>(const juce::Component::BailOutChecker & bailOutChecker, void (juce::Component &) * callbackFunction, juce::Component & param1) Line 178 C++
PluginHost.exe!juce::Component::sendVisibilityChangeMessage() Line 607 C++
PluginHost.exe!juce::Component::setVisible(bool shouldBeVisible) Line 586 C++
PluginHost.exe!PluginWindow::PluginWindow(juce::Component * pluginEditor, juce::AudioProcessorGraph::Node * o, PluginWindow::WindowFormatType t) Line 51 C++
PluginHost.exe!PluginWindow::getWindowFor(juce::AudioProcessorGraph::Node * node, PluginWindow::WindowFormatType type) Line 187 C++
PluginHost.exe!FilterComponent::mouseUp(const juce::MouseEvent & e) Line 405 C++
PluginHost.exe!juce::Component::internalMouseUp(juce::MouseInputSource source, juce::Point<float> relativePos, juce::Time time, const juce::ModifierKeys oldModifiers) Line 2537 C++
PluginHost.exe!juce::MouseInputSourceInternal::sendMouseUp(juce::Component & comp, juce::Point<float> screenPos, juce::Time time, const juce::ModifierKeys oldMods) Line 148 C++
PluginHost.exe!juce::MouseInputSourceInternal::setButtons(juce::Point<float> screenPos, juce::Time time, const juce::ModifierKeys newButtonState) Line 191 C++
PluginHost.exe!juce::MouseInputSourceInternal::handleEvent(juce::ComponentPeer & newPeer, juce::Point<float> positionWithinPeer, juce::Time time, const juce::ModifierKeys newMods) Line 306 C++
PluginHost.exe!juce::MouseInputSource::handleEvent(juce::ComponentPeer & peer, juce::Point<float> pos, __int64 time, juce::ModifierKeys mods) Line 567 C++
PluginHost.exe!juce::ComponentPeer::handleMouseEvent(int touchIndex, juce::Point<float> pos, juce::ModifierKeys newMods, __int64 time) Line 91 C++
PluginHost.exe!juce::HWNDComponentPeer::doMouseEvent(juce::Point<float> position) Line 1655 C++
PluginHost.exe!juce::HWNDComponentPeer::doMouseUp(juce::Point<float> position, const unsigned int wParam) Line 1766 C++
PluginHost.exe!juce::HWNDComponentPeer::peerWindowProc(HWND__ * h, unsigned int message, unsigned int wParam, long lParam) Line 2407 C++
PluginHost.exe!juce::HWNDComponentPeer::windowProc(HWND__ * h, unsigned int message, unsigned int wParam, long lParam) Line 2331 C++
[External Code]
PluginHost.exe!juce::MessageManager::dispatchNextMessageOnSystemQueue(bool returnIfNoPendingMessages) Line 135 C++
PluginHost.exe!juce::MessageManager::runDispatchLoopUntil(int millisecondsToRunFor) Line 99 C++
PluginHost.exe!juce::MessageManager::runDispatchLoop() Line 87 C++
PluginHost.exe!juce::JUCEApplicationBase::main() Line 239 C++
PluginHost.exe!WinMain(void * __formal, void * __formal, const char * __formal, int __formal) Line 102 C++
[External Code]
And the code it stops at is:
void Component::setBounds (const int x, const int y, int w, int h)
{
...
if (showing)
{
if (wasResized)
repaint();
else if (! flags.hasHeavyweightPeerFlag)
repaintParent();
}
else if (cachedImage != nullptr)
{
cachedImage->invalidateAll();
}
>>> if (flags.hasHeavyweightPeerFlag)
if (ComponentPeer* const peer = getPeer())
peer->updateBounds();
sendMovedResizedMessages (wasMoved, wasResized);
}
}
So, there are some differences in what I see when I run my own plugin, but quite close in location.