navigine_sdk_flutter_ImageProvider_ToFfi function
Implementation
Pointer<Void> navigine_sdk_flutter_ImageProvider_ToFfi(ImageProvider provider) {
final heap = GetImageProviderData.heap;
final sendPort = heap.sendPort;
final providerId = navigine_sdk_flutter_String_ToFfi(provider.id);
final nativeObject =
newImageProvider(provider.cacheable, sendPort, providerId);
navigine_sdk_flutter_String_ReleaseFfiHandle(providerId);
if (nativeObject == nullptr) {
throw StateError('Failed to create native ImageProvider handle.');
}
// `nativeObject` is the transient FFI handle released after the call.
// Native async callbacks use the underlying ImageProviderBinding* as key.
final nativeObjectKey =
_navigine_sdk_flutter_image_provider_GetObjectKey(nativeObject);
if (nativeObjectKey == nullptr) {
_navigine_sdk_flutter_image_provider_ReleaseHandle(nativeObject);
throw StateError('Failed to get native ImageProvider callback key.');
}
heap.insertObject(nativeObjectKey, provider);
return nativeObject;
}