Optimize MAssembly::GetClass(MonoClass* monoClass) search via assembly image early out

This commit is contained in:
Wojtek Figat
2021-02-19 11:04:29 +01:00
parent fe1d1b20f8
commit cc980fd70d

View File

@@ -184,17 +184,9 @@ MClass* MAssembly::GetClass(const StringAnsiView& fullname) const
MClass* MAssembly::GetClass(MonoClass* monoClass) const
{
// Check input
if (monoClass == nullptr)
if (monoClass == nullptr || !IsLoaded() || mono_class_get_image(monoClass) != _monoImage)
return nullptr;
// Check state
if (!IsLoaded())
{
LOG(Fatal, "Trying to use unloaded assembly {0}! Source: {1}", String(_name), TEXT("MAssembly::GetClass()"));
return nullptr;
}
// Find class by native pointer
const auto& classes = GetClasses();
const auto typeToken = mono_class_get_type_token(monoClass);