1.1 --- a/core/logic/HandleSys.cpp Sat Aug 31 19:50:26 2013 -0700
1.2 +++ b/core/logic/HandleSys.cpp Sat Aug 31 19:50:36 2013 -0700
1.3 @@ -59,8 +59,6 @@
1.4 m_Types = new QHandleType[HANDLESYS_TYPEARRAY_SIZE];
1.5 memset(m_Types, 0, sizeof(QHandleType) * HANDLESYS_TYPEARRAY_SIZE);
1.6
1.7 - m_strtab = new BaseStringTable(512);
1.8 -
1.9 m_TypeTail = 0;
1.10 }
1.11
1.12 @@ -68,7 +66,6 @@
1.13 {
1.14 delete [] m_Handles;
1.15 delete [] m_Types;
1.16 - delete m_strtab;
1.17 }
1.18
1.19
1.20 @@ -142,12 +139,10 @@
1.21
1.22 if (name && name[0] != '\0')
1.23 {
1.24 - if (m_TypeLookup.retrieve(name))
1.25 + if (m_TypeLookup.contains(name))
1.26 {
1.27 if (err)
1.28 - {
1.29 *err = HandleError_Parameter;
1.30 - }
1.31 return 0;
1.32 }
1.33 }
1.34 @@ -209,10 +204,10 @@
1.35 pType->dispatch = dispatch;
1.36 if (name && name[0] != '\0')
1.37 {
1.38 - pType->nameIdx = m_strtab->AddString(name);
1.39 + pType->name = name;
1.40 m_TypeLookup.insert(name, pType);
1.41 } else {
1.42 - pType->nameIdx = -1;
1.43 + pType->name.setVoid();
1.44 }
1.45
1.46 pType->opened = 0;
1.47 @@ -930,13 +925,8 @@
1.48 }
1.49
1.50 /* Remove it from the type cache. */
1.51 - if (pType->nameIdx != -1)
1.52 - {
1.53 - const char *typeName;
1.54 -
1.55 - typeName = m_strtab->GetString(pType->nameIdx);
1.56 - m_TypeLookup.remove(typeName);
1.57 - }
1.58 + if (!pType->name.isVoid())
1.59 + m_TypeLookup.remove(pType->name.chars());
1.60
1.61 return true;
1.62 }
1.63 @@ -1061,14 +1051,10 @@
1.64 continue; /* We may have gaps, it's fine. */
1.65 }
1.66
1.67 - if (m_Types[i].nameIdx != -1)
1.68 - {
1.69 - pTypeName = m_strtab->GetString(m_Types[i].nameIdx);
1.70 - }
1.71 + if (!m_Types[i].name.isVoid())
1.72 + pTypeName = m_Types[i].name.chars();
1.73 else
1.74 - {
1.75 pTypeName = "ANON";
1.76 - }
1.77
1.78 HANDLE_LOG_VERY_BAD("Type\t%-20.20s|\tCount\t%u", pTypeName, pCount[i]);
1.79 }
1.80 @@ -1133,10 +1119,8 @@
1.81 unsigned int size = 0;
1.82 unsigned int parentIdx;
1.83 bool bresult;
1.84 - if (pType->nameIdx != -1)
1.85 - {
1.86 - type = m_strtab->GetString(pType->nameIdx);
1.87 - }
1.88 + if (!pType->name.isVoid())
1.89 + type = pType->name.chars();
1.90
1.91 if ((parentIdx = m_Handles[i].clone) != 0)
1.92 {