From 5ccb358875d3cfcc6fded3d43eed3101d970e250 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 23 Mar 2008 22:19:04 +0000 Subject: [PATCH] - Fixed: The Sequence pointer in ASoundSequenceSlot was not declared as a pointer and it was missing both read and write barriers. SVN r845 (trunk) --- docs/rh-log.txt | 2 ++ src/g_shared/a_soundsequence.cpp | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/rh-log.txt b/docs/rh-log.txt index 2823d3c21..5277a741f 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,6 @@ March 23, 2008 (Changes by Graf Zahl) +- Fixed: The Sequence pointer in ASoundSequenceSlot was not declared as + a pointer and it was missing both read and write barriers. - Fixed: The sector translators must clear unused bits because they might render a sector's special inoperable. - Expanded the args for MAPINFO special actions to 32 bit integers as in diff --git a/src/g_shared/a_soundsequence.cpp b/src/g_shared/a_soundsequence.cpp index de7303620..66c6f3aa2 100644 --- a/src/g_shared/a_soundsequence.cpp +++ b/src/g_shared/a_soundsequence.cpp @@ -71,13 +71,18 @@ class ASoundSequenceSlot : public AActor { DECLARE_STATELESS_ACTOR (ASoundSequenceSlot, AActor) + HAS_OBJECT_POINTERS public: void Serialize (FArchive &arc); - DSeqNode *Sequence; + TObjPtr Sequence; }; -IMPLEMENT_STATELESS_ACTOR (ASoundSequenceSlot, Any, -1, 0) +IMPLEMENT_POINTY_CLASS(ASoundSequenceSlot) + DECLARE_POINTER(Sequence) +END_POINTERS + +BEGIN_STATELESS_DEFAULTS (ASoundSequenceSlot, Any, -1, 0) PROP_Flags (MF_NOSECTOR|MF_NOBLOCKMAP) PROP_Flags3 (MF3_DONTSPLASH) END_DEFAULTS @@ -149,6 +154,7 @@ void ASoundSequence::PostBeginPlay () { master = Spawn (0, 0, 0, NO_REPLACE); master->Sequence = SN_StartSequence (master, slot, 0); + GC::WriteBarrier(master, master->Sequence); } master->Sequence->AddChoice (args[0], SEQ_ENVIRONMENT); Destroy ();