extractErrorMessage function

String extractErrorMessage(
  1. Pointer<OpusError> error
)

提取错误消息并释放 C 字符串

Implementation

String extractErrorMessage(Pointer<OpusError> error) {
  final errorRef = error.ref;
  if (errorRef.message.address == 0) {
    return 'Unknown error (code: ${errorRef.code})';
  }

  final message = errorRef.message.cast<Utf8>().toDartString();
  final messagePtr = calloc<Pointer<Char>>();
  messagePtr.value = errorRef.message;
  bindings.free_c_string(messagePtr);
  calloc.free(messagePtr);

  return message;
}