8db489cb10
Change-Id: Ie84529ef3d41d55c29c9a4bf2c84a69e3dbcaa0f Reviewed-on: https://dart-review.googlesource.com/c/93429 Auto-Submit: Samir Jindel <sjindel@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com> Commit-Queue: Samir Jindel <sjindel@google.com>
36 lines
905 B
Dart
36 lines
905 B
Dart
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
import "dart:_internal" show patch;
|
|
|
|
DynamicLibrary _open(String name) native "Ffi_dl_open";
|
|
|
|
@patch
|
|
@pragma("vm:entry-point")
|
|
class DynamicLibrary {
|
|
@patch
|
|
factory DynamicLibrary.open(String name) {
|
|
return _open(name);
|
|
}
|
|
|
|
@patch
|
|
Pointer<T> lookup<T extends NativeType>(String symbolName)
|
|
native "Ffi_dl_lookup";
|
|
|
|
// TODO(dacoharkes): Expose this to users, or extend Pointer?
|
|
// https://github.com/dart-lang/sdk/issues/35881
|
|
int getHandle() native "Ffi_dl_getHandle";
|
|
|
|
@patch
|
|
bool operator ==(other) {
|
|
if (other == null) return false;
|
|
return getHandle() == other.getHandle();
|
|
}
|
|
|
|
@patch
|
|
int get hashCode {
|
|
return getHandle().hashCode;
|
|
}
|
|
}
|