Improve custom attributes caching in managed classes

This commit is contained in:
2023-05-01 12:38:25 +03:00
parent b89d32ce2b
commit 65b63da93a
2 changed files with 42 additions and 33 deletions

View File

@@ -381,7 +381,14 @@ namespace FlaxEngine.Interop
attrib = attributes.FirstOrDefault();
}
if (attrib != null)
return ManagedHandle.Alloc(attrib, GCHandleType.Weak);
{
if (!classAttributesCacheCollectible.TryGetValue(attrib, out var handle))
{
handle = ManagedHandle.Alloc(attrib);
classAttributesCacheCollectible.Add(attrib, handle);
}
return handle;
}
return new ManagedHandle();
}