Skip to content

Instantly share code, notes, and snippets.

@j0sh
Created September 30, 2011 07:24
Show Gist options
  • Save j0sh/1252965 to your computer and use it in GitHub Desktop.
Save j0sh/1252965 to your computer and use it in GitHub Desktop.
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