From 58e47ab226e945d1782a7cbe462011da7dd6c190 Mon Sep 17 00:00:00 2001 From: David Rose Date: Tue, 16 Jun 2009 23:00:28 +0000 Subject: [PATCH] assert is_initialized --- direct/src/plugin/p3dInstanceManager.I | 11 +++++++++++ direct/src/plugin/p3dInstanceManager.cxx | 3 +++ direct/src/plugin/p3dInstanceManager.h | 3 +++ direct/src/plugin/p3dSession.cxx | 4 ++-- direct/src/plugin/p3d_plugin.cxx | 11 +++++++++++ 5 files changed, 30 insertions(+), 2 deletions(-) diff --git a/direct/src/plugin/p3dInstanceManager.I b/direct/src/plugin/p3dInstanceManager.I index 6f9d307dbc..ee5bc5404d 100644 --- a/direct/src/plugin/p3dInstanceManager.I +++ b/direct/src/plugin/p3dInstanceManager.I @@ -13,6 +13,17 @@ //////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////// +// Function: P3DInstanceManager::is_initialized +// Access: Public +// Description: Returns true if the instance manager is successfully +// initialized, false otherwise. +//////////////////////////////////////////////////////////////////// +inline bool P3DInstanceManager:: +is_initialized() const { + return _is_initialized; +} + //////////////////////////////////////////////////////////////////// // Function: P3DInstanceManager::get_root_dir // Access: Public diff --git a/direct/src/plugin/p3dInstanceManager.cxx b/direct/src/plugin/p3dInstanceManager.cxx index b3cedeeb73..f69d0101ac 100644 --- a/direct/src/plugin/p3dInstanceManager.cxx +++ b/direct/src/plugin/p3dInstanceManager.cxx @@ -31,6 +31,7 @@ P3DInstanceManager *P3DInstanceManager::_global_ptr; P3DInstanceManager:: P3DInstanceManager() { cerr << "creating instance manager\n"; + _is_initialized = false; _unique_session_index = 0; _request_seq = 0; @@ -92,6 +93,8 @@ initialize() { return false; } + _is_initialized = true; + return true; } diff --git a/direct/src/plugin/p3dInstanceManager.h b/direct/src/plugin/p3dInstanceManager.h index ac00494a70..6138426c70 100644 --- a/direct/src/plugin/p3dInstanceManager.h +++ b/direct/src/plugin/p3dInstanceManager.h @@ -37,6 +37,8 @@ private: public: bool initialize(); + inline bool is_initialized() const; + inline const string &get_root_dir() const; inline const string &get_download_url() const; @@ -74,6 +76,7 @@ private: string find_root_dir() const; private: + bool _is_initialized; string _root_dir; string _download_url; diff --git a/direct/src/plugin/p3dSession.cxx b/direct/src/plugin/p3dSession.cxx index 2e49a4d29c..8723f11c5c 100644 --- a/direct/src/plugin/p3dSession.cxx +++ b/direct/src/plugin/p3dSession.cxx @@ -207,8 +207,8 @@ send_command(TiXmlDocument *command) { void P3DSession:: start_p3dpython() { #ifdef _WIN32 - string p3dpython = "c:/cygwin/home/drose/player/direct/built/bin/p3dpython.exe"; - // string p3dpython = _python_root_dir + "/p3dpython.exe"; + //string p3dpython = "c:/cygwin/home/drose/player/direct/built/bin/p3dpython.exe"; + string p3dpython = _python_root_dir + "/p3dpython.exe"; #else string p3dpython = "/Users/drose/player/direct/built/bin/p3dpython"; #endif diff --git a/direct/src/plugin/p3d_plugin.cxx b/direct/src/plugin/p3d_plugin.cxx index 52f7b37822..dc2960189a 100644 --- a/direct/src/plugin/p3d_plugin.cxx +++ b/direct/src/plugin/p3d_plugin.cxx @@ -16,6 +16,8 @@ #include "p3dInstanceManager.h" #include "p3dInstance.h" +#include + // Use a simple lock to protect the C-style API functions in this // module from parallel access by multiple threads in the host. @@ -56,6 +58,7 @@ P3D_create_instance(P3D_request_ready_func *func, int win_width, int win_height, P3D_window_handle parent_window, const P3D_token tokens[], size_t num_tokens) { + assert(P3DInstanceManager::get_global_ptr()->is_initialized()); ACQUIRE_LOCK(_lock); P3DInstanceManager *inst_mgr = P3DInstanceManager::get_global_ptr(); P3DInstance *result = @@ -68,6 +71,7 @@ P3D_create_instance(P3D_request_ready_func *func, void P3D_instance_finish(P3D_instance *instance) { + assert(P3DInstanceManager::get_global_ptr()->is_initialized()); ACQUIRE_LOCK(_lock); P3DInstanceManager *inst_mgr = P3DInstanceManager::get_global_ptr(); inst_mgr->finish_instance((P3DInstance *)instance); @@ -77,6 +81,7 @@ P3D_instance_finish(P3D_instance *instance) { bool P3D_instance_has_property(P3D_instance *instance, const char *property_name) { + assert(P3DInstanceManager::get_global_ptr()->is_initialized()); ACQUIRE_LOCK(_lock); bool result = ((P3DInstance *)instance)->has_property(property_name); RELEASE_LOCK(_lock); @@ -86,6 +91,7 @@ P3D_instance_has_property(P3D_instance *instance, char * P3D_instance_get_property(P3D_instance *instance, const char *property_name) { + assert(P3DInstanceManager::get_global_ptr()->is_initialized()); ACQUIRE_LOCK(_lock); string value = ((P3DInstance *)instance)->get_property(property_name); @@ -101,6 +107,7 @@ void P3D_instance_set_property(P3D_instance *instance, const char *property_name, const char *value) { + assert(P3DInstanceManager::get_global_ptr()->is_initialized()); ACQUIRE_LOCK(_lock); ((P3DInstance *)instance)->set_property(property_name, value); RELEASE_LOCK(_lock); @@ -108,6 +115,7 @@ P3D_instance_set_property(P3D_instance *instance, P3D_request * P3D_instance_get_request(P3D_instance *instance) { + assert(P3DInstanceManager::get_global_ptr()->is_initialized()); ACQUIRE_LOCK(_lock); P3D_request *result = ((P3DInstance *)instance)->get_request(); RELEASE_LOCK(_lock); @@ -116,6 +124,7 @@ P3D_instance_get_request(P3D_instance *instance) { P3D_instance * P3D_check_request(bool wait) { + assert(P3DInstanceManager::get_global_ptr()->is_initialized()); ACQUIRE_LOCK(_lock); P3DInstanceManager *inst_mgr = P3DInstanceManager::get_global_ptr(); P3D_instance *inst = inst_mgr->check_request(); @@ -139,6 +148,7 @@ P3D_check_request(bool wait) { void P3D_request_finish(P3D_request *request, bool handled) { + assert(P3DInstanceManager::get_global_ptr()->is_initialized()); ACQUIRE_LOCK(_lock); if (request != (P3D_request *)NULL) { ((P3DInstance *)request->_instance)->finish_request(request, handled); @@ -153,6 +163,7 @@ P3D_instance_feed_url_stream(P3D_instance *instance, int unique_id, size_t total_expected_data, const unsigned char *this_data, size_t this_data_size) { + assert(P3DInstanceManager::get_global_ptr()->is_initialized()); ACQUIRE_LOCK(_lock); bool result = ((P3DInstance *)instance)-> feed_url_stream(unique_id, result_code, http_status_code,