check method

void check(
  1. MpStatus status,
  2. Pointer<Pointer<Char>> errorOutput
)

Converts a native status and owned error message to MpException.

Implementation

void check(bindings.MpStatus status, ffi.Pointer<ffi.Pointer<ffi.Char>> errorOutput) {
  final ffi.Pointer<ffi.Char> error = errorOutput.value;
  String? message;

  if (error != ffi.nullptr) {
    message = error.cast<Utf8>().toDartString();
    bindings.MpErrorFree(error);
    errorOutput.value = ffi.nullptr;
  }

  if (status != bindings.MpStatus.kMpOk) {
    throw MpException(
      MpStatus.fromCode(status.value),
      message ?? 'The native MediaPipe runtime returned ${status.name}.',
      task: task,
    );
  }
}