diff --git a/lout/identity.cc b/lout/identity.cc index ce54113..ea86c0c 100644 --- a/lout/identity.cc +++ b/lout/identity.cc @@ -83,10 +83,10 @@ void IdentifiableObject::registerName (const char *className, int *classId) { Class *klass = classesByName.at( className ).get(); if (klass == NULL) { - klass = new Class (currentlyConstructedClass, classesById.size (), - className); - classesByName.emplace (className, klass); - classesById.push_back (klass); + classesByName.emplace( className, + std::make_unique< Class >( currentlyConstructedClass, classesById.size(), className ) ); + klass= classesByName.at( className ).get(); + classesById.push_back( klass ); *classId = klass->id; }