From 0930482fa4ac8f65d64c4b99e8c1589050a8c162 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Tue, 1 Apr 2014 22:49:15 +0200 Subject: Core/Misc: Fix uninitialized values Fix Position members not being always initialized. Valgrind log: at : Position::NormalizeOrientation(float) (Object.h:388) by : Position::SetOrientation(float) (Object.h:315) by : Position::Relocate(Position const&) (Object.h:310) by : spell_ulduar_stone_grip::spell_ulduar_stone_grip_AuraScript::OnRemoveVehicle(AuraEffect const*, AuraEffectHandleModes) (boss_kologarn.cpp:592) --- src/server/game/Entities/Object/Object.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/server/game') diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h index 8d3b1ff9554..d55e357de1d 100644 --- a/src/server/game/Entities/Object/Object.h +++ b/src/server/game/Entities/Object/Object.h @@ -273,6 +273,11 @@ class Object struct Position { + Position(float x = 0, float y = 0, float z = 0, float o = 0) + : m_positionX(x), m_positionY(y), m_positionZ(z), m_orientation(NormalizeOrientation(o)) { } + + Position(const Position &loc) { Relocate(loc); } + struct PositionXYZStreamer { explicit PositionXYZStreamer(Position& pos) : m_pos(&pos) { } @@ -479,7 +484,7 @@ class WorldLocation : public Position public: explicit WorldLocation(uint32 _mapid = MAPID_INVALID, float _x = 0, float _y = 0, float _z = 0, float _o = 0) : m_mapId(_mapid) { Relocate(_x, _y, _z, _o); } - WorldLocation(const WorldLocation &loc) { WorldRelocate(loc); } + WorldLocation(const WorldLocation &loc) : Position(loc) { WorldRelocate(loc); } void WorldRelocate(const WorldLocation &loc) { m_mapId = loc.GetMapId(); Relocate(loc); } -- cgit v1.2.3