From 941c9ba73223aee908c65109c9ce0d6f8ad63488 Mon Sep 17 00:00:00 2001 From: David Rose Date: Tue, 3 Mar 2009 21:07:49 +0000 Subject: [PATCH] fix static-init issue --- panda/src/pgraph/shaderGeneratorBase.cxx | 12 ++++++++++-- panda/src/pgraph/shaderGeneratorBase.h | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/panda/src/pgraph/shaderGeneratorBase.cxx b/panda/src/pgraph/shaderGeneratorBase.cxx index 08d2d81063..7bb1562380 100644 --- a/panda/src/pgraph/shaderGeneratorBase.cxx +++ b/panda/src/pgraph/shaderGeneratorBase.cxx @@ -15,7 +15,7 @@ #include "shaderGeneratorBase.h" TypeHandle ShaderGeneratorBase::_type_handle; -PT(ShaderGeneratorBase) ShaderGeneratorBase::_default_generator; +ShaderGeneratorBase *ShaderGeneratorBase::_default_generator = NULL; //////////////////////////////////////////////////////////////////// // Function: ShaderGeneratorBase::Constructor @@ -52,5 +52,13 @@ get_default() { //////////////////////////////////////////////////////////////////// void ShaderGeneratorBase:: set_default(ShaderGeneratorBase *generator) { - _default_generator = generator; + if (generator != _default_generator) { + if (_default_generator != (ShaderGeneratorBase *)NULL) { + unref_delete(_default_generator); + } + _default_generator = generator; + if (_default_generator != (ShaderGeneratorBase *)NULL) { + _default_generator->ref(); + } + } } diff --git a/panda/src/pgraph/shaderGeneratorBase.h b/panda/src/pgraph/shaderGeneratorBase.h index 56dd81bc0e..08ba493635 100644 --- a/panda/src/pgraph/shaderGeneratorBase.h +++ b/panda/src/pgraph/shaderGeneratorBase.h @@ -24,7 +24,7 @@ //////////////////////////////////////////////////////////////////// class EXPCL_PANDA_PGRAPH ShaderGeneratorBase : public TypedWritableReferenceCount { private: - static PT(ShaderGeneratorBase) _default_generator; + static ShaderGeneratorBase *_default_generator; protected: ShaderGeneratorBase();