Merge "slang: Improve handling of StringMapEntries."
diff --git a/slang.cpp b/slang.cpp
index da9b2eb..ec068d3 100644
--- a/slang.cpp
+++ b/slang.cpp
@@ -534,8 +534,9 @@
llvm::StringMapEntry<ReflectedDefinitionTy>::Create(RDKey);
ME->setValue(std::make_pair(ERT, CurInputFile));
- if (!ReflectedDefinitions.insert(ME))
- delete ME;
+ if (!ReflectedDefinitions.insert(ME)) {
+ slangAssert(false && "Type shouldn't be in map yet!");
+ }
// Take the ownership of ERT such that it won't be freed in ~RSContext().
ERT->keep();
diff --git a/slang_rs_context.cpp b/slang_rs_context.cpp
index 08d804b..2c4c6c6 100644
--- a/slang_rs_context.cpp
+++ b/slang_rs_context.cpp
@@ -259,7 +259,7 @@
if (mExportTypes.insert(NewItem)) {
return true;
} else {
- free(NewItem);
+ NewItem->Destroy(mExportTypes.getAllocator());
return false;
}
}