summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRubens Brandao <git@rubens.io>2024-04-22 10:43:00 -0300
committerKyle Martin <krm504@nyu.edu>2024-05-09 12:30:06 -0400
commit4e2fbc2b9ad3b45b47b803b8e0ffd8e3dcdf29ec (patch)
tree448c3017699dd53f1df26a56e68462ad21a17e30
parentfe710ffef3222272e1560ed8318dda726f7f925c (diff)
only create FlowGraph with Ref
-rw-r--r--rust/examples/dwarf/dwarfdump/src/lib.rs2
-rw-r--r--rust/examples/flowgraph/src/lib.rs2
-rw-r--r--rust/src/binaryview.rs2
-rw-r--r--rust/src/flowgraph.rs6
4 files changed, 5 insertions, 7 deletions
diff --git a/rust/examples/dwarf/dwarfdump/src/lib.rs b/rust/examples/dwarf/dwarfdump/src/lib.rs
index 8c6b32b7..c062ac63 100644
--- a/rust/examples/dwarf/dwarfdump/src/lib.rs
+++ b/rust/examples/dwarf/dwarfdump/src/lib.rs
@@ -281,7 +281,7 @@ fn dump_dwarf(bv: &BinaryView) {
}
}
- view.show_graph_report("DWARF", graph);
+ view.show_graph_report("DWARF", &graph);
}
struct DWARFDump;
diff --git a/rust/examples/flowgraph/src/lib.rs b/rust/examples/flowgraph/src/lib.rs
index 0375705d..2a03341c 100644
--- a/rust/examples/flowgraph/src/lib.rs
+++ b/rust/examples/flowgraph/src/lib.rs
@@ -36,7 +36,7 @@ fn test_graph(view: &BinaryView) {
&EdgeStyle::default(),
);
- view.show_graph_report("Rust Graph Title", graph);
+ view.show_graph_report("Rust Graph Title", &graph);
}
#[no_mangle]
diff --git a/rust/src/binaryview.rs b/rust/src/binaryview.rs
index 33fd9881..6e510694 100644
--- a/rust/src/binaryview.rs
+++ b/rust/src/binaryview.rs
@@ -1064,7 +1064,7 @@ pub trait BinaryViewExt: BinaryViewBase {
unsafe { BNApplyDebugInfo(self.as_ref().handle, debug_info.handle) }
}
- fn show_graph_report<S: BnStrCompatible>(&self, raw_name: S, graph: FlowGraph) {
+ fn show_graph_report<S: BnStrCompatible>(&self, raw_name: S, graph: &FlowGraph) {
let raw_name = raw_name.into_bytes_with_nul();
unsafe {
BNShowGraphReport(
diff --git a/rust/src/flowgraph.rs b/rust/src/flowgraph.rs
index 9d95cc49..c2d4d559 100644
--- a/rust/src/flowgraph.rs
+++ b/rust/src/flowgraph.rs
@@ -114,8 +114,6 @@ impl<'a> ToOwned for FlowGraphNode<'a> {
}
}
-// TODO : FlowGraph are RefCounted objects, this needs to be changed to only return Refs to FlowGraph
-
#[derive(PartialEq, Eq, Hash)]
pub struct FlowGraph {
pub(crate) handle: *mut BNFlowGraph,
@@ -126,8 +124,8 @@ impl FlowGraph {
Self { handle: raw }
}
- pub fn new() -> Self {
- unsafe { FlowGraph::from_raw(BNCreateFlowGraph()) }
+ pub fn new() -> Ref<Self> {
+ unsafe { Ref::new(FlowGraph::from_raw(BNCreateFlowGraph())) }
}
pub fn append(&self, node: &FlowGraphNode) -> usize {