summaryrefslogtreecommitdiff
path: root/rust/src/binary_view.rs
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-05-12 13:14:09 -0400
committerMason Reed <35282038+emesare@users.noreply.github.com>2025-05-12 17:45:24 -0400
commit0529ae4102f7dc37f54928bb4249ac74965b1ff4 (patch)
tree0bf1265bd72870945e0f972f5d28252a296a0432 /rust/src/binary_view.rs
parentade4eec735ead5bdf9c16f6fb5a40a9299fa6a1e (diff)
[Rust] Make TypeLibrary ref counted
And some other misc cleanup
Diffstat (limited to 'rust/src/binary_view.rs')
-rw-r--r--rust/src/binary_view.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/rust/src/binary_view.rs b/rust/src/binary_view.rs
index 4379e7f5..cae53e66 100644
--- a/rust/src/binary_view.rs
+++ b/rust/src/binary_view.rs
@@ -1634,10 +1634,10 @@ pub trait BinaryViewExt: BinaryViewBase {
unsafe { BNAddBinaryViewTypeLibrary(self.as_ref().handle, library.as_raw()) }
}
- fn type_library_by_name(&self, name: &str) -> Option<TypeLibrary> {
+ fn type_library_by_name(&self, name: &str) -> Option<Ref<TypeLibrary>> {
let name = name.to_cstr();
let result = unsafe { BNGetBinaryViewTypeLibrary(self.as_ref().handle, name.as_ptr()) };
- NonNull::new(result).map(|h| unsafe { TypeLibrary::from_raw(h) })
+ NonNull::new(result).map(|h| unsafe { TypeLibrary::ref_from_raw(h) })
}
/// Should be called by custom py:py:class:`BinaryView` implementations
@@ -1782,7 +1782,7 @@ pub trait BinaryViewExt: BinaryViewBase {
&self,
addr: u64,
platform: &Platform,
- ) -> Option<(TypeLibrary, QualifiedName)> {
+ ) -> Option<(Ref<TypeLibrary>, QualifiedName)> {
let mut result_lib = std::ptr::null_mut();
let mut result_name = BNQualifiedName::default();
let success = unsafe {
@@ -1797,7 +1797,7 @@ pub trait BinaryViewExt: BinaryViewBase {
if !success {
return None;
}
- let lib = unsafe { TypeLibrary::from_raw(NonNull::new(result_lib)?) };
+ let lib = unsafe { TypeLibrary::ref_from_raw(NonNull::new(result_lib)?) };
let name = QualifiedName::from_owned_raw(result_name);
Some((lib, name))
}
@@ -1808,7 +1808,7 @@ pub trait BinaryViewExt: BinaryViewBase {
fn lookup_imported_type_library<T: Into<QualifiedName>>(
&self,
name: T,
- ) -> Option<(TypeLibrary, QualifiedName)> {
+ ) -> Option<(Ref<TypeLibrary>, QualifiedName)> {
let raw_name = QualifiedName::into_raw(name.into());
let mut result_lib = std::ptr::null_mut();
let mut result_name = BNQualifiedName::default();
@@ -1824,7 +1824,7 @@ pub trait BinaryViewExt: BinaryViewBase {
if !success {
return None;
}
- let lib = unsafe { TypeLibrary::from_raw(NonNull::new(result_lib)?) };
+ let lib = unsafe { TypeLibrary::ref_from_raw(NonNull::new(result_lib)?) };
let name = QualifiedName::from_owned_raw(result_name);
Some((lib, name))
}