addTemporaryStrongReference method
Add a new instance with instanceId as key and instance as the value.
instance is temporarily stored as a strong reference. instance is
changed to a weak reference once getInstance is called once with
instanceId.
onFinalize is called after instance is garbage collected after being
switched to aa weak reference.
This is mainly used when the native platform wants to create a new instance pair, but doesn't want to claim ownership of it.
Returns true if the pair is successfully added. Returns false if
the instanceId or instance is already contained in the manager or the
instance is a num, bool, or String.
Implementation
bool addTemporaryStrongReference({
required Object instance,
String? instanceId,
required void Function(String instanceId) onFinalize,
}) {
final String newId = instanceId ?? generateUniqueInstanceId(instance);
if (addWeakReference(
instance: instance,
instanceId: newId,
onFinalize: onFinalize,
)) {
_temporaryStrongReferences[newId] = instance;
return true;
}
return false;
}