diff --git a/src/dobjtype.cpp b/src/dobjtype.cpp index 9420a939f..7f6d24352 100644 --- a/src/dobjtype.cpp +++ b/src/dobjtype.cpp @@ -864,8 +864,12 @@ IMPLEMENT_CLASS(PStruct) size_t PStruct::PropagateMark() { + size_t marked; + GC::MarkArray(Fields); - return Fields.Size() * sizeof(void*) + Super::PropagateMark(); + marked = Fields.Size() * sizeof(void*); + marked += Symbols.MarkSymbols(); + return marked + Super::PropagateMark(); } /* PPrototype *************************************************************/ @@ -1081,7 +1085,6 @@ PClass::PClass() PClass::~PClass() { - Symbols.ReleaseSymbols(); if (Defaults != NULL) { M_Free(Defaults); @@ -1431,22 +1434,6 @@ const PClass *PClass::NativeClass() const return cls; } -//========================================================================== -// -// PClass :: PropagateMark -// -//========================================================================== - -size_t PClass::PropagateMark() -{ - size_t marked; - - // Mark symbols - marked = Symbols.MarkSymbols(); - - return marked + Super::PropagateMark(); -} - /* FTypeTable **************************************************************/ //========================================================================== diff --git a/src/dobjtype.h b/src/dobjtype.h index b245611bc..535b113ac 100644 --- a/src/dobjtype.h +++ b/src/dobjtype.h @@ -408,6 +408,7 @@ class PStruct : public PNamedType DECLARE_CLASS(PStruct, PNamedType); public: TArray Fields; + PSymbolTable Symbols; size_t PropagateMark(); }; @@ -464,7 +465,6 @@ public: const size_t *FlatPointers; // object pointers defined by this class and all its superclasses; not initialized by default BYTE *Defaults; bool bRuntimeClass; // class was defined at run-time, not compile-time - PSymbolTable Symbols; void (*ConstructNative)(void *); @@ -478,7 +478,6 @@ public: void InitializeActorInfo(); void BuildFlatPointers(); const PClass *NativeClass() const; - size_t PropagateMark(); // Returns true if this type is an ancestor of (or same as) the passed type. bool IsAncestorOf(const PClass *ti) const