[7929] Some fixes and optimizations for work with packet guids. Author: VladimirMangos

* Allocate only minimal required buffer size for object packet guid cache, avoid it realocation.
    * At adding aboyher buffer content copy only until wpos (really writed to buffer data)
    * In appendPackGUID check buffer size before data write.

--HG--
branch : trunk
This commit is contained in:
megamage
2009-06-01 12:15:43 -05:00
parent 50015a1b4e
commit 11456447da
2 changed files with 6 additions and 4 deletions

View File

@@ -65,7 +65,7 @@ uint32 GuidHigh2TypeId(uint32 guid_hi)
return NUM_CLIENT_OBJECT_TYPES; // unknown
}
Object::Object( )
Object::Object( ) : m_PackGUID(sizeof(uint64)+1)
{
m_objectTypeId = TYPEID_OBJECT;
m_objectType = TYPEMASK_OBJECT;
@@ -77,7 +77,6 @@ Object::Object( )
m_inWorld = false;
m_objectUpdated = false;
m_PackGUID.clear();
m_PackGUID.appendPackGUID(0);
}
@@ -123,7 +122,7 @@ void Object::_Create( uint32 guidlow, uint32 entry, HighGuid guidhigh )
uint64 guid = MAKE_NEW_GUID(guidlow, entry, guidhigh);
SetUInt64Value( OBJECT_FIELD_GUID, guid );
SetUInt32Value( OBJECT_FIELD_TYPE, m_objectType );
m_PackGUID.clear();
m_PackGUID.wpos(0);
m_PackGUID.appendPackGUID(GetGUID());
}