[librsvg] node.rs: Free the node.state in our Drop impl
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] node.rs: Free the node.state in our Drop impl
- Date: Fri, 17 Feb 2017 16:38:13 +0000 (UTC)
commit 3cb68cdb73261d2b1df69c9a71aa5bdce89d75d8
Author: Federico Mena Quintero <federico gnome org>
Date: Thu Feb 9 20:59:16 2017 -0600
node.rs: Free the node.state in our Drop impl
The RsvgState is a C-managed resource, so we need to free it by hand.
rust/src/node.rs | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
---
diff --git a/rust/src/node.rs b/rust/src/node.rs
index 257ad5f..64b8f1a 100644
--- a/rust/src/node.rs
+++ b/rust/src/node.rs
@@ -116,6 +116,16 @@ impl Node {
}
}
+extern "C" {
+ fn rsvg_state_free (state: *mut RsvgState);
+}
+
+impl Drop for Node {
+ fn drop (&mut self) {
+ unsafe { rsvg_state_free (self.state); }
+ }
+}
+
#[no_mangle]
pub extern fn rsvg_node_get_type (raw_node: *const RsvgNode) -> NodeType {
assert! (!raw_node.is_null ());
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]