diff options
| author | linencloth <none@none> | 2010-10-21 16:56:51 +0200 |
|---|---|---|
| committer | linencloth <none@none> | 2010-10-21 16:56:51 +0200 |
| commit | d9d1ec3670ce4498b22025973fa126e5e3c2ab48 (patch) | |
| tree | 53f1ffd4ec3e3247f4b5af4bddf6207268b07eaf /src/server/game/Entities/Object | |
| parent | f275f8b4b580b48f8ff7804d2079d6cd83842cda (diff) | |
Core: optimize string splitting
- Mainly affects item loading performance
- Reduces guild loading time a lot
--HG--
branch : trunk
Diffstat (limited to 'src/server/game/Entities/Object')
| -rwxr-xr-x | src/server/game/Entities/Object/Object.cpp | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 7c5768a80e0..868443031ae 100755 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -764,17 +764,13 @@ bool Object::LoadValues(const char* data) { if (!m_uint32Values) _InitValues(); - Tokens tokens = StrSplit(data, " "); + Tokens tokens(data, ' '); if (tokens.size() != m_valuesCount) return false; - Tokens::iterator iter; - int index; - for (iter = tokens.begin(), index = 0; index < m_valuesCount; ++iter, ++index) - { - m_uint32Values[index] = atol((*iter).c_str()); - } + for (uint16 index = 0; index < m_valuesCount; ++index) + m_uint32Values[index] = atol(tokens[index]); return true; } @@ -784,17 +780,13 @@ void Object::_LoadIntoDataField(const char* data, uint32 startOffset, uint32 cou if (!data) return; - Tokens tokens = StrSplit(data, " "); + Tokens tokens(data, ' ', count); if (tokens.size() != count) return; - Tokens::iterator iter; - uint32 index; - for (iter = tokens.begin(), index = 0; index < count; ++iter, ++index) - { - m_uint32Values[startOffset + index] = atol((*iter).c_str()); - } + for (uint32 index = 0; index < count; ++index) + m_uint32Values[startOffset + index] = atol(tokens[index]); } void Object::_SetUpdateBits(UpdateMask *updateMask, Player* /*target*/) const |
