From 843bc110c4be75740131a9e5aeb01d68e0df635a Mon Sep 17 00:00:00 2001 From: David Rose Date: Wed, 7 Oct 2009 00:30:24 +0000 Subject: [PATCH] prevent crash at exit --- direct/src/plugin_activex/PPPandaObject.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/direct/src/plugin_activex/PPPandaObject.cpp b/direct/src/plugin_activex/PPPandaObject.cpp index 1a3ea3b0af..b37dd079b1 100644 --- a/direct/src/plugin_activex/PPPandaObject.cpp +++ b/direct/src/plugin_activex/PPPandaObject.cpp @@ -14,6 +14,7 @@ #include "stdafx.h" #include "PPPandaObject.h" +#include "load_plugin.h" PPandaObject::PPandaObject( PPInterface* interfac, P3D_object* p3dObject ) : m_interface( interfac ), m_p3dObject( p3dObject ), m_refs( 0 ), m_ptinfo( NULL ) @@ -31,7 +32,10 @@ PPandaObject::~PPandaObject() { m_ptinfo->Release(); } - if ( m_p3dObject ) + + // Clean up the p3d_object, but only if we haven't already + // unloaded the plugin. + if ( m_p3dObject && is_plugin_loaded() ) { P3D_OBJECT_DECREF( m_p3dObject ); }