mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 09:52:27 -04:00
tracking down memory leaks
This commit is contained in:
parent
d7ee644809
commit
007b7d3f9e
@ -114,7 +114,9 @@ determine_dynamic_type() {
|
|||||||
_dynamic_type = _static_type;
|
_dynamic_type = _static_type;
|
||||||
_flags &= ~F_reconsider_dynamic_type;
|
_flags &= ~F_reconsider_dynamic_type;
|
||||||
|
|
||||||
//nassert_raise("Unregistered type");
|
if (ConfigVariableBool("raise-unregistered-type", false).get_value()) {
|
||||||
|
nassert_raise("Unregistered type");
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ show() const {
|
|||||||
for (vi = count_sorter.begin(); vi != count_sorter.end(); ++vi) {
|
for (vi = count_sorter.begin(); vi != count_sorter.end(); ++vi) {
|
||||||
TypeHandle type = (*vi)._type;
|
TypeHandle type = (*vi)._type;
|
||||||
if (type == TypeHandle::none()) {
|
if (type == TypeHandle::none()) {
|
||||||
nout << "unknown";
|
nout << "undefined type (TypeHandle::none())";
|
||||||
} else {
|
} else {
|
||||||
nout << type;
|
nout << type;
|
||||||
}
|
}
|
||||||
@ -850,8 +850,12 @@ ns_get_pointers_of_type(MemoryUsagePointers &result, TypeHandle type) {
|
|||||||
if (info->_freeze_index == _freeze_index &&
|
if (info->_freeze_index == _freeze_index &&
|
||||||
info->_ref_ptr != (ReferenceCount *)NULL) {
|
info->_ref_ptr != (ReferenceCount *)NULL) {
|
||||||
TypeHandle info_type = info->get_type();
|
TypeHandle info_type = info->get_type();
|
||||||
if (info_type != TypeHandle::none() &&
|
if (type == TypeHandle::none() &&
|
||||||
info_type.is_derived_from(type)) {
|
info_type == TypeHandle::none()) {
|
||||||
|
result.add_entry(info->_ref_ptr, info->_typed_ptr, info_type,
|
||||||
|
now - info->_time);
|
||||||
|
} else if (info_type != TypeHandle::none() &&
|
||||||
|
info_type.is_derived_from(type)) {
|
||||||
result.add_entry(info->_ref_ptr, info->_typed_ptr, info_type,
|
result.add_entry(info->_ref_ptr, info->_typed_ptr, info_type,
|
||||||
now - info->_time);
|
now - info->_time);
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include "config_particlesystem.h"
|
#include "config_particlesystem.h"
|
||||||
#include "particleSystem.h"
|
#include "particleSystem.h"
|
||||||
#include "geomParticleRenderer.h"
|
#include "geomParticleRenderer.h"
|
||||||
|
#include "geomNode.h"
|
||||||
|
|
||||||
ConfigureDef(config_particlesystem);
|
ConfigureDef(config_particlesystem);
|
||||||
NotifyCategoryDef(particlesystem, "");
|
NotifyCategoryDef(particlesystem, "");
|
||||||
@ -26,6 +27,7 @@ ConfigureFn(config_particlesystem) {
|
|||||||
ColorInterpolationFunctionStepwave::init_type();
|
ColorInterpolationFunctionStepwave::init_type();
|
||||||
ColorInterpolationFunctionSinusoid::init_type();
|
ColorInterpolationFunctionSinusoid::init_type();
|
||||||
ParticleSystem::init_type();
|
ParticleSystem::init_type();
|
||||||
|
GeomNode::GeomList::init_type(); // repeated here to ensure instantiated templates get initialized too.
|
||||||
init_libparticlesystem();
|
init_libparticlesystem();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,6 +72,7 @@
|
|||||||
#include "renderModeAttrib.h"
|
#include "renderModeAttrib.h"
|
||||||
#include "renderState.h"
|
#include "renderState.h"
|
||||||
#include "rescaleNormalAttrib.h"
|
#include "rescaleNormalAttrib.h"
|
||||||
|
#include "sceneSetup.h"
|
||||||
#include "scissorAttrib.h"
|
#include "scissorAttrib.h"
|
||||||
#include "scissorEffect.h"
|
#include "scissorEffect.h"
|
||||||
#include "shadeModelAttrib.h"
|
#include "shadeModelAttrib.h"
|
||||||
@ -490,6 +491,7 @@ init_libpgraph() {
|
|||||||
RenderModeAttrib::init_type();
|
RenderModeAttrib::init_type();
|
||||||
RenderState::init_type();
|
RenderState::init_type();
|
||||||
RescaleNormalAttrib::init_type();
|
RescaleNormalAttrib::init_type();
|
||||||
|
SceneSetup::init_type();
|
||||||
ScissorAttrib::init_type();
|
ScissorAttrib::init_type();
|
||||||
ScissorEffect::init_type();
|
ScissorEffect::init_type();
|
||||||
ShadeModelAttrib::init_type();
|
ShadeModelAttrib::init_type();
|
||||||
|
@ -117,10 +117,11 @@ public:
|
|||||||
CPT(RenderState) _state;
|
CPT(RenderState) _state;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef CopyOnWriteObj< pvector<GeomEntry> > GeomList;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
bool _preserved;
|
bool _preserved;
|
||||||
typedef CopyOnWriteObj< pvector<GeomEntry> > GeomList;
|
|
||||||
typedef pmap<const InternalName *, int> NameCount;
|
typedef pmap<const InternalName *, int> NameCount;
|
||||||
|
|
||||||
INLINE void count_name(NameCount &name_count, const InternalName *name);
|
INLINE void count_name(NameCount &name_count, const InternalName *name);
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
#include "renderState.cxx"
|
#include "renderState.cxx"
|
||||||
#include "rescaleNormalAttrib.cxx"
|
#include "rescaleNormalAttrib.cxx"
|
||||||
#include "sceneGraphReducer.cxx"
|
#include "sceneGraphReducer.cxx"
|
||||||
|
#include "sceneSetup.cxx"
|
||||||
#include "scissorAttrib.cxx"
|
#include "scissorAttrib.cxx"
|
||||||
#include "scissorEffect.cxx"
|
#include "scissorEffect.cxx"
|
||||||
#include "shadeModelAttrib.cxx"
|
#include "shadeModelAttrib.cxx"
|
||||||
|
@ -14,3 +14,4 @@
|
|||||||
|
|
||||||
#include "sceneSetup.h"
|
#include "sceneSetup.h"
|
||||||
|
|
||||||
|
TypeHandle SceneSetup::_type_handle;
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "pandabase.h"
|
#include "pandabase.h"
|
||||||
|
|
||||||
#include "referenceCount.h"
|
#include "typedReferenceCount.h"
|
||||||
#include "nodePath.h"
|
#include "nodePath.h"
|
||||||
#include "camera.h"
|
#include "camera.h"
|
||||||
#include "transformState.h"
|
#include "transformState.h"
|
||||||
@ -32,7 +32,7 @@ class DisplayRegion;
|
|||||||
// other general setup information for rendering a
|
// other general setup information for rendering a
|
||||||
// particular scene.
|
// particular scene.
|
||||||
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
||||||
class EXPCL_PANDA_PGRAPH SceneSetup : public ReferenceCount {
|
class EXPCL_PANDA_PGRAPH SceneSetup : public TypedReferenceCount {
|
||||||
public:
|
public:
|
||||||
INLINE SceneSetup();
|
INLINE SceneSetup();
|
||||||
|
|
||||||
@ -82,6 +82,23 @@ private:
|
|||||||
CPT(RenderState) _initial_state;
|
CPT(RenderState) _initial_state;
|
||||||
CPT(TransformState) _camera_transform;
|
CPT(TransformState) _camera_transform;
|
||||||
CPT(TransformState) _world_transform;
|
CPT(TransformState) _world_transform;
|
||||||
|
|
||||||
|
public:
|
||||||
|
static TypeHandle get_class_type() {
|
||||||
|
return _type_handle;
|
||||||
|
}
|
||||||
|
static void init_type() {
|
||||||
|
TypedReferenceCount::init_type();
|
||||||
|
register_type(_type_handle, "SceneSetup",
|
||||||
|
TypedReferenceCount::get_class_type());
|
||||||
|
}
|
||||||
|
virtual TypeHandle get_type() const {
|
||||||
|
return get_class_type();
|
||||||
|
}
|
||||||
|
virtual TypeHandle force_init_type() {init_type(); return get_class_type();}
|
||||||
|
|
||||||
|
private:
|
||||||
|
static TypeHandle _type_handle;
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "sceneSetup.I"
|
#include "sceneSetup.I"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user