From 50d126e78b49d4ffa66b795dc597e5f839e0076b Mon Sep 17 00:00:00 2001 From: Randy Heit Date: Sat, 24 Apr 2010 03:10:58 +0000 Subject: [PATCH] - Clear the TypeTable on shutdown so that the objects in it can be collected. SVN r2301 (scripting) --- src/dobjtype.cpp | 15 +++++++++++++++ src/dobjtype.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/dobjtype.cpp b/src/dobjtype.cpp index d3aa01ce6..d757aff7c 100644 --- a/src/dobjtype.cpp +++ b/src/dobjtype.cpp @@ -790,6 +790,7 @@ void PClass::StaticShutdown () { delete[] uniqueFPs[i]; } + TypeTable.Clear(); bShutdown = true; } @@ -1321,6 +1322,20 @@ void FTypeTable::Mark() } } +//========================================================================== +// +// FTypeTable :: Clear +// +// Removes everything from the table. We let the garbage collector worry +// about deleting them. +// +//========================================================================== + +void FTypeTable::Clear() +{ + memset(TypeHash, 0, sizeof(TypeHash)); +} + #include "c_dispatch.h" CCMD(typetable) { diff --git a/src/dobjtype.h b/src/dobjtype.h index 4bf4fccd9..bdcff573d 100644 --- a/src/dobjtype.h +++ b/src/dobjtype.h @@ -529,6 +529,7 @@ struct FTypeTable void AddType(PType *type, PClass *metatype, const void *parm1, const void *parm2, size_t bucket); void AddType(PType *type); void Mark(); + void Clear(); static size_t Hash(const void *p1, const void *p2, const void *p3); };