Created
September 30, 2011 07:24
-
-
Save j0sh/1252965 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/sources/common/src/utils/misc/variant.cpp b/sources/common/src/utils/misc/variant.cpp | |
index 62361ea..7579749 100644 | |
--- a/sources/common/src/utils/misc/variant.cpp | |
+++ b/sources/common/src/utils/misc/variant.cpp | |
@@ -697,22 +697,22 @@ Variant& Variant::operator[](const double &key) { | |
} | |
Variant& Variant::operator[](const uint32_t &key) { | |
- stringstream ss; | |
- ss << VAR_INDEX_VALUE << key; | |
- return operator[](ss.str()); | |
+ char c[32]; | |
+ sprintf(c, VAR_INDEX_VALUE"%05u", key); | |
+ return operator[](c); | |
} | |
Variant& Variant::operator[](Variant &key) { | |
stringstream ss; | |
switch (key._type) { | |
+ case V_INT8: return operator[]((uint32_t)key._value.i8); | |
+ case V_INT16: return operator[]((uint32_t)key._value.i16); | |
+ case V_INT32: return operator[]((uint32_t)key._value.i32); | |
+ case V_UINT8: return operator[]((uint32_t)key._value.ui8); | |
+ case V_UINT16: return operator[]((uint32_t)key._value.ui16); | |
+ case V_UINT32: return operator[](key._value.ui32); | |
case V_BOOL: | |
- case V_INT8: | |
- case V_INT16: | |
- case V_INT32: | |
case V_INT64: | |
- case V_UINT8: | |
- case V_UINT16: | |
- case V_UINT32: | |
case V_UINT64: | |
case V_DOUBLE: | |
{ | |
@@ -890,7 +890,7 @@ uint32_t Variant::MapDenseSize() { | |
uint32_t denseCount = 0; | |
for (denseCount = 0; denseCount < MapSize(); denseCount++) { | |
- if (!MAP_HAS1(_value.m->children, format(VAR_INDEX_VALUE"%u", denseCount))) | |
+ if (!MAP_HAS1(_value.m->children, format(VAR_INDEX_VALUE"%05u", denseCount))) | |
break; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment