[librsvg] Remove a bunch of unused functions



commit 4992dd3ebfe6457f7e158c22b264fb50ac513584
Author: Federico Mena Quintero <federico gnome org>
Date:   Thu Dec 20 16:35:23 2018 -0600

    Remove a bunch of unused functions
    
    Including rsvg_node_unref().  Yay!!!!!!

 librsvg/rsvg-handle.c             | 14 -------
 rsvg_internals/src/drawing_ctx.rs | 33 ---------------
 rsvg_internals/src/handle.rs      | 45 +--------------------
 rsvg_internals/src/lib.rs         |  6 ---
 rsvg_internals/src/node.rs        | 84 ---------------------------------------
 5 files changed, 1 insertion(+), 181 deletions(-)
---
diff --git a/librsvg/rsvg-handle.c b/librsvg/rsvg-handle.c
index c79cda0e..194868e4 100644
--- a/librsvg/rsvg-handle.c
+++ b/librsvg/rsvg-handle.c
@@ -159,7 +159,6 @@ extern void rsvg_handle_rust_set_dpi_x (RsvgHandleRust *raw_handle, double dpi_x
 extern void rsvg_handle_rust_set_dpi_y (RsvgHandleRust *raw_handle, double dpi_y);
 extern void rsvg_handle_rust_set_base_url (RsvgHandleRust *raw_handle, const char *uri);
 extern GFile *rsvg_handle_rust_get_base_gfile (RsvgHandleRust *raw_handle);
-extern RsvgNode *rsvg_handle_defs_lookup (RsvgHandle *handle, const char *name);
 extern guint rsvg_handle_rust_get_flags (RsvgHandleRust *raw_handle);
 extern void rsvg_handle_rust_set_flags (RsvgHandleRust *raw_handle, guint flags);
 extern RsvgHandleState rsvg_handle_rust_get_load_state (RsvgHandleRust *raw_handle);
@@ -169,11 +168,6 @@ extern gboolean rsvg_handle_rust_read_stream_sync (RsvgHandle *handle,
                                                    GError **error);
 extern void rsvg_handle_rust_write (RsvgHandle *handle, const guchar *buf, gsize count);
 extern gboolean rsvg_handle_rust_close (RsvgHandle *handle, GError **error);
-extern RsvgDrawingCtx *rsvg_handle_create_drawing_ctx_for_node(RsvgHandle *handle,
-                                                               cairo_t *cr,
-                                                               RsvgDimensionData *dimensions,
-                                                               RsvgNode *node,
-                                                               gboolean is_testing);
 extern gboolean rsvg_handle_rust_get_geometry_sub (RsvgHandle *handle,
                                                    RsvgRectangle *out_ink_rect,
                                                    RsvgRectangle *out_logical_rect,
@@ -183,14 +177,6 @@ extern gboolean rsvg_handle_rust_render_cairo_sub (RsvgHandle *handle,
                                                    cairo_t *cr,
                                                    const char *id);
 
-/* Implemented in rust/src/node.rs */
-/* Call this as node = rsvg_node_unref (node);  Then node will be NULL and you don't own it anymore! */
-extern RsvgNode *rsvg_node_unref (RsvgNode *node);
-
-/* Defined in rsvg_internals/src/drawing_ctx.rs */
-extern void rsvg_drawing_ctx_free (RsvgDrawingCtx *draw_ctx);
-extern gboolean rsvg_drawing_ctx_draw_node_from_stack (RsvgDrawingCtx *ctx) G_GNUC_WARN_UNUSED_RESULT;
-
 struct RsvgHandlePrivate {
     RsvgSizeFunc size_func;
     gpointer user_data;
diff --git a/rsvg_internals/src/drawing_ctx.rs b/rsvg_internals/src/drawing_ctx.rs
index b8a436af..dee538c7 100644
--- a/rsvg_internals/src/drawing_ctx.rs
+++ b/rsvg_internals/src/drawing_ctx.rs
@@ -2,7 +2,6 @@ use cairo;
 use cairo::MatrixTrait;
 use cairo_sys;
 use glib::translate::*;
-use glib_sys;
 use pango::{self, ContextExt, FontMapExt, LayoutExt};
 use pango_sys;
 use pangocairo;
@@ -1047,32 +1046,6 @@ impl From<TextRendering> for cairo::Antialias {
     }
 }
 
-#[no_mangle]
-pub extern "C" fn rsvg_drawing_ctx_draw_node_from_stack(
-    raw_draw_ctx: *mut DrawingCtx,
-) -> glib_sys::gboolean {
-    assert!(!raw_draw_ctx.is_null());
-    let draw_ctx = unsafe { &mut *raw_draw_ctx };
-
-    // FIXME: The public API doesn't let us return a GError from the rendering
-    // functions, just a boolean.  Add a proper API to return proper errors from
-    // the rendering path.
-
-    let svg_ref = handle::get_svg(draw_ctx.handle);
-    let svg = svg_ref.as_ref().unwrap();
-
-    let root = svg.tree.root();
-
-    if draw_ctx
-        .draw_node_from_stack(&root.get_cascaded_values(), &root, false)
-        .is_ok()
-    {
-        true.to_glib()
-    } else {
-        false.to_glib()
-    }
-}
-
 #[derive(Default, Clone, Copy, Debug, PartialEq)]
 #[repr(C)]
 pub struct RsvgRectangle {
@@ -1129,9 +1102,3 @@ impl NodeStack {
         self.0.iter().find(|n| Rc::ptr_eq(n, node)).is_some()
     }
 }
-
-#[no_mangle]
-pub unsafe extern "C" fn rsvg_drawing_ctx_free(raw_draw_ctx: *mut DrawingCtx) {
-    assert!(!raw_draw_ctx.is_null());
-    Box::from_raw(raw_draw_ctx);
-}
diff --git a/rsvg_internals/src/handle.rs b/rsvg_internals/src/handle.rs
index e9bc584a..fc8f7cd7 100644
--- a/rsvg_internals/src/handle.rs
+++ b/rsvg_internals/src/handle.rs
@@ -22,7 +22,7 @@ use drawing_ctx::{DrawingCtx, RsvgRectangle};
 use error::{set_gerror, DefsLookupErrorKind, LoadingError, RenderingError};
 use io;
 use load::LoadContext;
-use node::{box_node, Node, RsvgNode};
+use node::{Node, RsvgNode};
 use structure::NodeSvg;
 use surface_utils::shared_surface::SharedImageSurface;
 use svg::Svg;
@@ -666,12 +666,6 @@ pub fn load_css(css_styles: &mut CssStyles, handle: *mut RsvgHandle, href_str: &
     }
 }
 
-pub fn get_svg<'a>(handle: *const RsvgHandle) -> Ref<'a, Option<Svg>> {
-    let rhandle = get_rust_handle(handle);
-
-    rhandle.svg.borrow()
-}
-
 #[no_mangle]
 pub unsafe extern "C" fn rsvg_handle_rust_new() -> *mut Handle {
     Box::into_raw(Box::new(Handle::new()))
@@ -755,23 +749,6 @@ pub unsafe extern "C" fn rsvg_handle_rust_get_dpi_y(raw_handle: *const Handle) -
     handle.dpi.y()
 }
 
-#[no_mangle]
-pub unsafe extern "C" fn rsvg_handle_defs_lookup(
-    handle: *const RsvgHandle,
-    name: *const libc::c_char,
-) -> *const RsvgNode {
-    assert!(!name.is_null());
-
-    let rhandle = get_rust_handle(handle);
-    let name: String = from_glib_none(name);
-
-    match rhandle.defs_lookup(handle, &name) {
-        Ok(node) => box_node(node),
-
-        Err(_) => ptr::null(),
-    }
-}
-
 #[no_mangle]
 pub unsafe extern "C" fn rsvg_handle_rust_get_flags(raw_handle: *const Handle) -> u32 {
     let rhandle = &*raw_handle;
@@ -859,26 +836,6 @@ pub unsafe extern "C" fn rsvg_handle_rust_close(
     }
 }
 
-#[no_mangle]
-pub unsafe extern "C" fn rsvg_handle_create_drawing_ctx_for_node(
-    handle: *mut RsvgHandle,
-    cr: *mut cairo_sys::cairo_t,
-    dimensions: *const RsvgDimensionData,
-    node: *const RsvgNode,
-    is_testing: glib_sys::gboolean,
-) -> *mut DrawingCtx {
-    let cr = from_glib_none(cr);
-    let dimensions = &*dimensions;
-    let is_testing = from_glib(is_testing);
-
-    let node = if node.is_null() { None } else { Some(&*node) };
-
-    let rhandle = get_rust_handle(handle);
-    let draw_ctx = rhandle.create_drawing_ctx_for_node(handle, &cr, dimensions, node, is_testing);
-
-    Box::into_raw(Box::new(draw_ctx))
-}
-
 #[no_mangle]
 pub unsafe extern "C" fn rsvg_handle_rust_get_geometry_sub(
     handle: *mut RsvgHandle,
diff --git a/rsvg_internals/src/lib.rs b/rsvg_internals/src/lib.rs
index f3416f63..f1d97764 100644
--- a/rsvg_internals/src/lib.rs
+++ b/rsvg_internals/src/lib.rs
@@ -35,11 +35,7 @@ extern crate lazy_static;
 
 pub use color::{rsvg_css_parse_color, ColorKind, ColorSpec};
 
-pub use drawing_ctx::{rsvg_drawing_ctx_draw_node_from_stack, rsvg_drawing_ctx_free};
-
 pub use handle::{
-    rsvg_handle_create_drawing_ctx_for_node,
-    rsvg_handle_defs_lookup,
     rsvg_handle_rust_close,
     rsvg_handle_rust_free,
     rsvg_handle_rust_get_base_gfile,
@@ -59,8 +55,6 @@ pub use handle::{
     rsvg_handle_rust_write,
 };
 
-pub use node::rsvg_node_unref;
-
 pub use xml::rsvg_xml_state_error;
 
 #[macro_use]
diff --git a/rsvg_internals/src/node.rs b/rsvg_internals/src/node.rs
index 745adcc6..c2583e0e 100644
--- a/rsvg_internals/src/node.rs
+++ b/rsvg_internals/src/node.rs
@@ -1,7 +1,6 @@
 use cairo::{Matrix, MatrixTrait};
 use downcast_rs::*;
 use std::cell::{Cell, Ref, RefCell};
-use std::ptr;
 use std::rc::{Rc, Weak};
 
 use attributes::Attribute;
@@ -670,86 +669,3 @@ pub fn node_new(
         node_impl,
     ))
 }
-
-pub fn box_node(node: RsvgNode) -> *mut RsvgNode {
-    Box::into_raw(Box::new(node))
-}
-
-#[no_mangle]
-pub extern "C" fn rsvg_node_unref(raw_node: *mut RsvgNode) -> *mut RsvgNode {
-    if !raw_node.is_null() {
-        let _ = unsafe { Box::from_raw(raw_node) };
-    }
-
-    // so the caller can do "node = rsvg_node_unref (node);" and lose access to the node
-    ptr::null_mut()
-}
-
-#[cfg(test)]
-mod tests {
-    use super::*;
-    use handle::RsvgHandle;
-    use std::rc::Rc;
-
-    struct TestNodeImpl {}
-
-    impl NodeTrait for TestNodeImpl {
-        fn set_atts(&self, _: &RsvgNode, _: *const RsvgHandle, _: &PropertyBag<'_>) -> NodeResult {
-            Ok(())
-        }
-    }
-
-    fn rsvg_node_ref(raw_node: *mut RsvgNode) -> *mut RsvgNode {
-        assert!(!raw_node.is_null());
-        let node: &RsvgNode = unsafe { &*raw_node };
-
-        box_node(node.clone())
-    }
-
-    #[test]
-    fn node_refs_and_unrefs() {
-        let node = Rc::new(Node::new(
-            NodeType::Path,
-            None,
-            None,
-            None,
-            Box::new(TestNodeImpl {}),
-        ));
-
-        let ref1 = box_node(node);
-
-        let new_node: &mut RsvgNode = unsafe { &mut *ref1 };
-        let weak = Rc::downgrade(new_node);
-
-        let ref2 = rsvg_node_ref(new_node);
-        assert!(weak.upgrade().is_some());
-
-        rsvg_node_unref(ref2);
-        assert!(weak.upgrade().is_some());
-
-        rsvg_node_unref(ref1);
-        assert!(weak.upgrade().is_none());
-    }
-
-    #[test]
-    fn reffed_node_is_same_as_original_node() {
-        let node = Rc::new(Node::new(
-            NodeType::Path,
-            None,
-            None,
-            None,
-            Box::new(TestNodeImpl {}),
-        ));
-
-        let ref1 = box_node(node);
-        let node1: &RsvgNode = unsafe { &*ref1 };
-
-        let ref2 = rsvg_node_ref(ref1);
-        let node2: &RsvgNode = unsafe { &*ref2 };
-
-        assert!(Rc::ptr_eq(node1, node2));
-
-        rsvg_node_unref(ref1);
-        rsvg_node_unref(ref2);
-    }
-}


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]