Altered LLIndexedVector. There's zero point to having a lookup map into an array like this. Just iterating down the array is faster than the map lookup (which iterates down a linked list...). A hash map would be a different case entirely.

This commit is contained in:
Shyotl
2018-10-12 02:07:45 -05:00
parent 55ad048b3a
commit 0b4d789afb
12 changed files with 37 additions and 134 deletions

View File

@@ -30,8 +30,12 @@
#include "message.h"
U32 sMsgDataAllocSize = 0;
U32 sMsgdataAllocCount = 0;
void LLMsgVarData::addData(const void *data, S32 size, EMsgVariableType type, S32 data_size)
{
sMsgDataAllocSize += size;
mSize = size;
mDataSize = data_size;
if ( (type != MVT_VARIABLE) && (type != MVT_FIXED)
@@ -45,6 +49,7 @@ void LLMsgVarData::addData(const void *data, S32 size, EMsgVariableType type, S3
}
if(size)
{
++sMsgdataAllocCount;
delete[] mData; // Delete it if it already exists
mData = new U8[size];
htonmemcpy(mData, data, mType, size);
@@ -120,7 +125,7 @@ std::ostream& operator<<(std::ostream& s, LLMessageBlock &msg)
for (LLMessageBlock::message_variable_map_t::iterator iter = msg.mMemberVariables.begin();
iter != msg.mMemberVariables.end(); iter++)
{
LLMessageVariable& ci = *(*iter);
LLMessageVariable& ci = *iter->second;
s << ci;
}
@@ -164,7 +169,7 @@ std::ostream& operator<<(std::ostream& s, LLMessageTemplate &msg)
for (LLMessageTemplate::message_block_map_t::iterator iter = msg.mMemberBlocks.begin();
iter != msg.mMemberBlocks.end(); iter++)
{
LLMessageBlock* ci = *iter;
LLMessageBlock* ci = iter->second;
s << *ci;
}