[librsvg/bilelmoussaoui/release-gtk-rs: 3/4] gdk-pixbuf-loader: Use ffi crates from safe ones directly




commit f6d4109a0b011f81cb0d4ea4524a240b6c48f235
Author: Bilal Elmoussaoui <belmouss redhat com>
Date:   Thu Oct 20 10:11:10 2022 +0200

    gdk-pixbuf-loader: Use ffi crates from safe ones directly

 gdk-pixbuf-loader/Cargo.lock |  3 ---
 gdk-pixbuf-loader/Cargo.toml |  3 ---
 gdk-pixbuf-loader/src/lib.rs | 41 ++++++++++++++++++++---------------------
 3 files changed, 20 insertions(+), 27 deletions(-)
---
diff --git a/gdk-pixbuf-loader/Cargo.lock b/gdk-pixbuf-loader/Cargo.lock
index 4de83d629..1279026c4 100644
--- a/gdk-pixbuf-loader/Cargo.lock
+++ b/gdk-pixbuf-loader/Cargo.lock
@@ -1234,11 +1234,8 @@ dependencies = [
  "cairo-rs",
  "cstr",
  "gdk-pixbuf",
- "gdk-pixbuf-sys",
  "gio",
  "glib",
- "glib-sys",
- "gobject-sys",
  "libc",
  "librsvg",
 ]
diff --git a/gdk-pixbuf-loader/Cargo.toml b/gdk-pixbuf-loader/Cargo.toml
index 5c3a0c307..524b11a28 100644
--- a/gdk-pixbuf-loader/Cargo.toml
+++ b/gdk-pixbuf-loader/Cargo.toml
@@ -9,11 +9,8 @@ crate-type = ["cdylib"]
 
 [dependencies]
 librsvg = { path = ".." }
-gdk-pixbuf-sys = "0.16"
 gdk-pixbuf = "0.16"
 libc = "0.2"
-glib-sys = "0.16"
-gobject-sys = "0.16"
 glib = "0.16"
 gio = "0.16"
 cairo-rs = "0.16"
diff --git a/gdk-pixbuf-loader/src/lib.rs b/gdk-pixbuf-loader/src/lib.rs
index 40d992e30..6a30657e9 100644
--- a/gdk-pixbuf-loader/src/lib.rs
+++ b/gdk-pixbuf-loader/src/lib.rs
@@ -1,21 +1,20 @@
 use std::ptr::null_mut;
 
-use gdk_pixbuf_sys::GdkPixbuf;
-use gdk_pixbuf_sys::{
-    GdkPixbufFormat, GdkPixbufModule, GdkPixbufModulePattern, GdkPixbufModulePreparedFunc,
-    GdkPixbufModuleSizeFunc, GdkPixbufModuleUpdatedFunc, GDK_PIXBUF_FORMAT_SCALABLE,
-    GDK_PIXBUF_FORMAT_THREADSAFE,
+use gdk_pixbuf::ffi::{
+    GdkPixbuf, GdkPixbufFormat, GdkPixbufModule, GdkPixbufModulePattern,
+    GdkPixbufModulePreparedFunc, GdkPixbufModuleSizeFunc, GdkPixbufModuleUpdatedFunc,
+    GDK_PIXBUF_FORMAT_SCALABLE, GDK_PIXBUF_FORMAT_THREADSAFE,
 };
 
 use libc::{c_char, c_int, c_uint};
 
+use glib::ffi::{gboolean, gpointer, GError};
 use glib::translate::{IntoGlib, ToGlibPtr};
 use glib::Bytes;
-use glib_sys::{gboolean, GError};
 
 use gio::prelude::MemoryInputStreamExt;
 use gio::MemoryInputStream;
-use gobject_sys::GObject;
+use glib::gobject_ffi::GObject;
 
 use librsvg::rsvg_convert_only::LegacySize;
 use librsvg::Loader;
@@ -26,7 +25,7 @@ struct SvgContext {
     size_func: GdkPixbufModuleSizeFunc,
     prep_func: GdkPixbufModulePreparedFunc,
     update_func: GdkPixbufModuleUpdatedFunc,
-    user_data: glib_sys::gpointer,
+    user_data: gpointer,
     stream: MemoryInputStream,
 }
 
@@ -35,9 +34,9 @@ unsafe extern "C" fn begin_load(
     size_func: GdkPixbufModuleSizeFunc,
     prep_func: GdkPixbufModulePreparedFunc,
     update_func: GdkPixbufModuleUpdatedFunc,
-    user_data: glib_sys::gpointer,
+    user_data: gpointer,
     error: *mut *mut GError,
-) -> glib_sys::gpointer {
+) -> gpointer {
     if error != null_mut() {
         *error = null_mut();
     }
@@ -51,12 +50,12 @@ unsafe extern "C" fn begin_load(
         stream,
     });
 
-    Box::into_raw(ctx) as glib_sys::gpointer
+    Box::into_raw(ctx) as gpointer
 }
 
 #[no_mangle]
 unsafe extern "C" fn load_increment(
-    user_data: glib_sys::gpointer,
+    user_data: gpointer,
     buffer: *const u8,
     size: c_uint,
     error: *mut *mut GError,
@@ -73,7 +72,7 @@ unsafe extern "C" fn load_increment(
 }
 
 #[no_mangle]
-unsafe extern "C" fn stop_load(user_data: glib_sys::gpointer, error: *mut *mut GError) -> gboolean {
+unsafe extern "C" fn stop_load(user_data: gpointer, error: *mut *mut GError) -> gboolean {
     let ctx = Box::from_raw(user_data as *mut SvgContext);
     if error != null_mut() {
         *error = null_mut();
@@ -136,7 +135,7 @@ unsafe extern "C" fn stop_load(user_data: glib_sys::gpointer, error: *mut *mut G
     }
 
     // The module loader increases a ref so we drop the pixbuf here
-    gobject_sys::g_object_unref(pixbuf as *mut GObject);
+    glib::gobject_ffi::g_object_unref(pixbuf as *mut GObject);
 
     true.into_glib()
 }
@@ -196,7 +195,7 @@ extern "C" fn fill_info(info: &mut GdkPixbufFormat) {
 
 #[cfg(test)]
 mod tests {
-    use gdk_pixbuf_sys::{
+    use gdk_pixbuf::ffi::{
         GdkPixbufFormat, GDK_PIXBUF_FORMAT_SCALABLE, GDK_PIXBUF_FORMAT_THREADSAFE,
     };
     use glib::translate::IntoGlib;
@@ -313,20 +312,20 @@ mod tests {
     #[test]
     fn minimal_svg() {
         unsafe extern "C" fn prep_cb(
-            pb: *mut gdk_pixbuf_sys::GdkPixbuf,
-            pba: *mut gdk_pixbuf_sys::GdkPixbufAnimation,
+            pb: *mut gdk_pixbuf::ffi::GdkPixbuf,
+            pba: *mut gdk_pixbuf::ffi::GdkPixbufAnimation,
             user_data: *mut libc::c_void,
         ) {
             assert_eq!(user_data, null_mut());
             assert_eq!(pba, null_mut());
 
-            let w = gdk_pixbuf_sys::gdk_pixbuf_get_width(pb);
-            let h = gdk_pixbuf_sys::gdk_pixbuf_get_height(pb);
-            let stride = gdk_pixbuf_sys::gdk_pixbuf_get_rowstride(pb);
+            let w = gdk_pixbuf::ffi::gdk_pixbuf_get_width(pb);
+            let h = gdk_pixbuf::ffi::gdk_pixbuf_get_height(pb);
+            let stride = gdk_pixbuf::ffi::gdk_pixbuf_get_rowstride(pb);
             assert_eq!(w, 100);
             assert_eq!(h, 150);
 
-            let pixels = gdk_pixbuf_sys::gdk_pixbuf_get_pixels(pb);
+            let pixels = gdk_pixbuf::ffi::gdk_pixbuf_get_pixels(pb);
 
             // Upper left pixel #aa1144ff
             assert_eq!(*pixels, 0xaa);


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