diff options
| author | Fabian Freyer <fabian.freyer@physik.tu-berlin.de> | 2022-01-31 06:24:07 +0100 |
|---|---|---|
| committer | KyleMiles <krm504@nyu.edu> | 2022-02-14 18:45:09 -0500 |
| commit | 181ad567199e5685578ecf7ad400257098c2e175 (patch) | |
| tree | 9e45c986cc8157dfe0fd6f5a8e80898d4a128309 /rust/src/string.rs | |
| parent | ae7ae4f63f931342e155d77bb4cf6d75289682bf (diff) | |
rust: add ArrayGuard and for non-owned arrays
To make use of shard functionality, we split the CoreOwnedArrayProvider
into CoreArrayProvider and CoreOwnedArrayProvider. Array makes use of
the CoreOwnedArrayProvider, which depends on CoreArrayProvider, while
the new ArrayGuard only requires CoreArrayProvider and represents
a non-owned array.
Diffstat (limited to 'rust/src/string.rs')
| -rw-r--r-- | rust/src/string.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/rust/src/string.rs b/rust/src/string.rs index 198c764b..647ef9b0 100644 --- a/rust/src/string.rs +++ b/rust/src/string.rs @@ -155,17 +155,19 @@ impl fmt::Display for BnString { } } -unsafe impl CoreOwnedArrayProvider for BnString { +impl CoreArrayProvider for BnString { type Raw = *mut raw::c_char; type Context = (); +} +unsafe impl CoreOwnedArrayProvider for BnString { unsafe fn free(raw: *mut Self::Raw, count: usize, _context: &Self::Context) { use binaryninjacore_sys::BNFreeStringList; BNFreeStringList(raw, count); } } -unsafe impl<'a> CoreOwnedArrayWrapper<'a> for BnString { +unsafe impl<'a> CoreArrayWrapper<'a> for BnString { type Wrapped = &'a BnStr; unsafe fn wrap_raw(raw: &'a Self::Raw, _context: &'a Self::Context) -> Self::Wrapped { |
