From 4118a70f6513586fc7be1f433b6f4b573b2ccfc1 Mon Sep 17 00:00:00 2001 From: Ambal Date: Sat, 6 Jun 2009 11:38:23 +0400 Subject: [PATCH] [7969] Remove gameobject from owner gameobjecs list at expire. This will prevent delayd owner access from gameobject destructor in time remove list proccessing and fix possible related problems with crosslinked pointers. Signed-off-by: VladimirMangos --- src/game/GameObject.cpp | 5 ++++- src/shared/revision_nr.h | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/game/GameObject.cpp b/src/game/GameObject.cpp index d08d6f9c0..98be0da03 100644 --- a/src/game/GameObject.cpp +++ b/src/game/GameObject.cpp @@ -399,7 +399,10 @@ void GameObject::Update(uint32 /*p_time*/) if(GetOwnerGUID()) { - m_respawnTime = 0; + if(Unit* owner = GetOwner()) + owner->RemoveGameObject(this, false); + + SetRespawnTime(0); Delete(); return; } diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index 8e23251aa..04203eeaf 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "7968" + #define REVISION_NR "7969" #endif // __REVISION_NR_H__