dispose method

  1. @override
void dispose()

Releases native memory created by copyToNative.

This method is called within the IO implementation and should not be callable or even visible to end developers.

Implementation

@override
void dispose() {
  assert(() {
    if (isClosed) {
      throw Exception(
        'A TextEmbedderResult was closed after it had already been closed. '
        'TextEmbedderResult objects should only be closed when they are at'
        'their end of life and will never be used again.',
      );
    }
    if (_pointer == null) {
      throw Exception(
        'Attempted to call dispose on a TextEmbedderOptions object which '
        'was never used by a TextEmbedder. Did you forget to create your '
        'TextEmbedder?',
      );
    }
    return true;
  }());
  baseOptions.freeStructFields(_pointer!.ref.base_options);
  embedderOptions.freeStructFields(_pointer!.ref.embedder_options);
  calloc.free(_pointer!);
  _isClosed = true;
}