Identity map.
Some checks failed
CI / ubuntu-latest-html-tests (push) Has been cancelled
CI / alpine-mbedtls-3_6_0 (push) Has been cancelled
CI / ubuntu-latest-no-tls (push) Has been cancelled
CI / ubuntu-latest-mbedtls2 (push) Has been cancelled
CI / ubuntu-latest-openssl-3 (push) Has been cancelled
CI / ubuntu-latest-with-old-std (push) Has been cancelled
CI / ubuntu-20-04-openssl-1-1 (push) Has been cancelled
CI / macOS-13-openssl-1-1 (push) Has been cancelled
CI / macOS-13-openssl-3 (push) Has been cancelled
CI / freebsd-14-openssl-3 (push) Has been cancelled
CI / windows-mbedtls (push) Has been cancelled

This commit is contained in:
2025-08-08 01:16:13 -04:00
parent 26436617cc
commit 7616f9f296
2 changed files with 8 additions and 9 deletions

View File

@ -55,9 +55,7 @@ void IdentifiableObject::Class::intoStringBuffer(misc::StringBuffer *sb)
sb->append (">");
}
HashTable <ConstString, IdentifiableObject::Class>
*IdentifiableObject::classesByName =
new HashTable<ConstString, IdentifiableObject::Class> (true, true);
std::map< std::string, std::unique_ptr< IdentifiableObject::Class > > IdentifiableObject::classesByName;
std::vector< IdentifiableObject::Class * > IdentifiableObject::classesById;
@ -83,13 +81,11 @@ void IdentifiableObject::intoStringBuffer(misc::StringBuffer *sb)
*/
void IdentifiableObject::registerName (const char *className, int *classId)
{
ConstString str (className);
Class *klass = classesByName->get (&str);
Class *klass = classesByName.at( className ).get();
if (klass == NULL) {
klass = new Class (currentlyConstructedClass, classesById.size (),
className);
ConstString *key = new ConstString (className);
classesByName->put (key, klass);
classesByName.emplace (className, klass);
classesById.push_back (klass);
*classId = klass->id;
}