summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBilal Elmoussaoui <belmouss@redhat.com>2022-10-20 10:11:10 +0200
committerMarge Bot <marge-bot@gnome.org>2022-10-25 13:59:05 +0000
commit8b42157c157600fdcabbbf3e39808cd027141fbf (patch)
tree0919f462e1462bdb45fc10f6f5de834244d02b74
parent274e3a510ab0f4854ebe836c629a1128532869f2 (diff)
downloadlibrsvg-8b42157c157600fdcabbbf3e39808cd027141fbf.tar.gz
gdk-pixbuf-loader: Use ffi crates from safe ones directly
Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/760>
-rw-r--r--gdk-pixbuf-loader/Cargo.lock3
-rw-r--r--gdk-pixbuf-loader/Cargo.toml3
-rw-r--r--gdk-pixbuf-loader/src/lib.rs41
3 files changed, 20 insertions, 27 deletions
diff --git a/gdk-pixbuf-loader/Cargo.lock b/gdk-pixbuf-loader/Cargo.lock
index 4de83d62..1279026c 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 5c3a0c30..524b11a2 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 40d992e3..6a30657e 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);