Changeset View
Changeset View
Standalone View
Standalone View
ps/trunk/source/simulation2/serialization/StdDeserializer.cpp
Show All 25 Lines | |||||
#include "simulation2/serialization/ISerializer.h" | #include "simulation2/serialization/ISerializer.h" | ||||
#include "simulation2/serialization/SerializedScriptTypes.h" | #include "simulation2/serialization/SerializedScriptTypes.h" | ||||
#include "simulation2/serialization/StdSerializer.h" // for DEBUG_SERIALIZER_ANNOTATE | #include "simulation2/serialization/StdSerializer.h" // for DEBUG_SERIALIZER_ANNOTATE | ||||
CStdDeserializer::CStdDeserializer(const ScriptInterface& scriptInterface, std::istream& stream) : | CStdDeserializer::CStdDeserializer(const ScriptInterface& scriptInterface, std::istream& stream) : | ||||
m_ScriptInterface(scriptInterface), m_Stream(stream) | m_ScriptInterface(scriptInterface), m_Stream(stream) | ||||
{ | { | ||||
JS_AddExtraGCRootsTracer(m_ScriptInterface.GetGeneralJSContext(), CStdDeserializer::Trace, this); | JS_AddExtraGCRootsTracer(m_ScriptInterface.GetGeneralJSContext(), CStdDeserializer::Trace, this); | ||||
// Insert a dummy object in front, as valid tags start at 1. | |||||
m_ScriptBackrefs.emplace_back(nullptr); | |||||
} | } | ||||
CStdDeserializer::~CStdDeserializer() | CStdDeserializer::~CStdDeserializer() | ||||
{ | { | ||||
JS_RemoveExtraGCRootsTracer(m_ScriptInterface.GetGeneralJSContext(), CStdDeserializer::Trace, this); | JS_RemoveExtraGCRootsTracer(m_ScriptInterface.GetGeneralJSContext(), CStdDeserializer::Trace, this); | ||||
} | } | ||||
void CStdDeserializer::Trace(JSTracer *trc, void *data) | void CStdDeserializer::Trace(JSTracer *trc, void *data) | ||||
▲ Show 20 Lines • Show All 449 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator