[librsvg: 2/30] use re-exported ffi
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 2/30] use re-exported ffi
- Date: Wed, 23 Jun 2021 23:05:39 +0000 (UTC)
commit dd24360316fe048158182d81942e07aee7a309b5
Author: Bilal Elmoussaoui <bil elmoussaoui gmail com>
Date: Tue May 4 12:42:03 2021 +0200
use re-exported ffi
Part-of: <https://gitlab.gnome.org/GNOME/librsvg/-/merge_requests/516>
src/api.rs | 4 +-
src/bin/rsvg-convert.rs | 4 +-
src/c_api/handle.rs | 174 ++++++++++++++++++------------------
src/c_api/messages.rs | 12 +--
src/c_api/pixbuf_utils.rs | 24 ++---
src/drawing_ctx.rs | 2 +-
src/handle.rs | 5 +-
src/surface_utils/shared_surface.rs | 20 +++--
src/util.rs | 20 -----
src/xml/xml2.rs | 2 +-
tests/src/utils.rs | 2 +-
11 files changed, 125 insertions(+), 144 deletions(-)
---
diff --git a/src/api.rs b/src/api.rs
index be33127a..a8a09343 100644
--- a/src/api.rs
+++ b/src/api.rs
@@ -10,12 +10,12 @@ pub use crate::{
length::{LengthUnit, RsvgLength as Length},
};
-use glib::prelude::*;
use url::Url;
use std::path::Path;
-use gio::{Cancellable, FileExt};
+use gio::prelude::*; // Re-exposes glib's prelude as well
+use gio::Cancellable;
use crate::{
dpi::Dpi,
diff --git a/src/bin/rsvg-convert.rs b/src/bin/rsvg-convert.rs
index bfe92a73..089d8461 100644
--- a/src/bin/rsvg-convert.rs
+++ b/src/bin/rsvg-convert.rs
@@ -9,9 +9,9 @@ use gio::{UnixInputStream, UnixOutputStream};
#[cfg(windows)]
mod windows_imports {
- pub use gio_sys::{GInputStream, GOutputStream};
+ pub use gio::ffi::{GInputStream, GOutputStream};
+ pub use glib::ffi::gboolean;
pub use glib::translate::*;
- pub use glib_sys::gboolean;
pub use libc::c_void;
pub use std::io;
pub use std::os::windows::io::AsRawHandle;
diff --git a/src/c_api/handle.rs b/src/c_api/handle.rs
index 952908f0..c4008588 100644
--- a/src/c_api/handle.rs
+++ b/src/c_api/handle.rs
@@ -145,9 +145,9 @@ impl From<LoadFlags> for HandleFlags {
#[repr(C)]
pub struct RsvgHandleClass {
// Keep this in sync with rsvg.h:RsvgHandleClass
- parent: gobject_sys::GObjectClass,
+ parent: glib::gobject_ffi::GObjectClass,
- _abi_padding: [glib_sys::gpointer; 15],
+ _abi_padding: [glib::ffi::gpointer; 15],
}
/// GObject instance struct for RsvgHandle.
@@ -158,9 +158,9 @@ pub struct RsvgHandleClass {
#[repr(C)]
pub struct RsvgHandle {
// Keep this in sync with rsvg.h:RsvgHandle
- parent: gobject_sys::GObject,
+ parent: glib::gobject_ffi::GObject,
- _abi_padding: [glib_sys::gpointer; 16],
+ _abi_padding: [glib::ffi::gpointer; 16],
}
/// State machine for `RsvgHandle`.
@@ -551,22 +551,22 @@ pub type RsvgSizeFunc = Option<
unsafe extern "C" fn(
inout_width: *mut libc::c_int,
inout_height: *mut libc::c_int,
- user_data: glib_sys::gpointer,
+ user_data: glib::ffi::gpointer,
),
;
struct SizeCallback {
size_func: RsvgSizeFunc,
- user_data: glib_sys::gpointer,
- destroy_notify: glib_sys::GDestroyNotify,
+ user_data: glib::ffi::gpointer,
+ destroy_notify: glib::ffi::GDestroyNotify,
in_loop: Cell<bool>,
}
impl SizeCallback {
fn new(
size_func: RsvgSizeFunc,
- user_data: glib_sys::gpointer,
- destroy_notify: glib_sys::GDestroyNotify,
+ user_data: glib::ffi::gpointer,
+ destroy_notify: glib::ffi::GDestroyNotify,
) -> Self {
SizeCallback {
size_func,
@@ -719,8 +719,8 @@ impl CHandle {
fn set_size_callback(
&self,
size_func: RsvgSizeFunc,
- user_data: glib_sys::gpointer,
- destroy_notify: glib_sys::GDestroyNotify,
+ user_data: glib::ffi::gpointer,
+ destroy_notify: glib::ffi::GDestroyNotify,
) {
let mut inner = self.inner.borrow_mut();
inner.size_callback = SizeCallback::new(size_func, user_data, destroy_notify);
@@ -960,7 +960,7 @@ impl CHandle {
fn render_cairo_sub(
&self,
- cr: *mut cairo_sys::cairo_t,
+ cr: *mut cairo::ffi::cairo_t,
id: Option<&str>,
) -> Result<(), RenderingError> {
let dimensions = self.get_dimensions_sub(None)?;
@@ -1005,7 +1005,7 @@ impl CHandle {
fn render_document(
&self,
- cr: *mut cairo_sys::cairo_t,
+ cr: *mut cairo::ffi::cairo_t,
viewport: &cairo::Rectangle,
) -> Result<(), RenderingError> {
let cr = check_cairo_context(cr)?;
@@ -1031,7 +1031,7 @@ impl CHandle {
fn render_layer(
&self,
- cr: *mut cairo_sys::cairo_t,
+ cr: *mut cairo::ffi::cairo_t,
id: Option<&str>,
viewport: &cairo::Rectangle,
) -> Result<(), RenderingError> {
@@ -1059,7 +1059,7 @@ impl CHandle {
fn render_element(
&self,
- cr: *mut cairo_sys::cairo_t,
+ cr: *mut cairo::ffi::cairo_t,
id: Option<&str>,
element_viewport: &cairo::Rectangle,
) -> Result<(), RenderingError> {
@@ -1094,15 +1094,15 @@ fn is_rsvg_handle(obj: *const RsvgHandle) -> bool {
unsafe { instance_of::<CHandle>(obj as *const _) }
}
-fn is_input_stream(obj: *mut gio_sys::GInputStream) -> bool {
+fn is_input_stream(obj: *mut gio::ffi::GInputStream) -> bool {
unsafe { instance_of::<gio::InputStream>(obj as *const _) }
}
-fn is_gfile(obj: *const gio_sys::GFile) -> bool {
+fn is_gfile(obj: *const gio::ffi::GFile) -> bool {
unsafe { instance_of::<gio::File>(obj as *const _) }
}
-fn is_cancellable(obj: *mut gio_sys::GCancellable) -> bool {
+fn is_cancellable(obj: *mut gio::ffi::GCancellable) -> bool {
unsafe { instance_of::<gio::Cancellable>(obj as *const _) }
}
@@ -1112,17 +1112,17 @@ fn get_rust_handle<'a>(handle: *const RsvgHandle) -> &'a CHandle {
}
#[no_mangle]
-pub unsafe extern "C" fn rsvg_handle_get_type() -> glib_sys::GType {
+pub unsafe extern "C" fn rsvg_handle_get_type() -> glib::ffi::GType {
CHandle::get_type().to_glib()
}
#[no_mangle]
-pub unsafe extern "C" fn rsvg_error_get_type() -> glib_sys::GType {
+pub unsafe extern "C" fn rsvg_error_get_type() -> glib::ffi::GType {
Error::static_type().to_glib()
}
#[no_mangle]
-pub unsafe extern "C" fn rsvg_handle_flags_get_type() -> glib_sys::GType {
+pub unsafe extern "C" fn rsvg_handle_flags_get_type() -> glib::ffi::GType {
HandleFlags::static_type().to_glib()
}
@@ -1149,7 +1149,7 @@ pub unsafe extern "C" fn rsvg_handle_set_base_uri(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_set_base_gfile(
handle: *const RsvgHandle,
- raw_gfile: *mut gio_sys::GFile,
+ raw_gfile: *mut gio::ffi::GFile,
) {
rsvg_return_if_fail! {
rsvg_handle_set_base_gfile;
@@ -1216,8 +1216,8 @@ pub unsafe extern "C" fn rsvg_handle_set_dpi_x_y(
pub unsafe extern "C" fn rsvg_handle_set_size_callback(
handle: *const RsvgHandle,
size_func: RsvgSizeFunc,
- user_data: glib_sys::gpointer,
- destroy_notify: glib_sys::GDestroyNotify,
+ user_data: glib::ffi::gpointer,
+ destroy_notify: glib::ffi::GDestroyNotify,
) {
rsvg_return_if_fail! {
rsvg_handle_set_size_callback;
@@ -1233,7 +1233,7 @@ pub unsafe extern "C" fn rsvg_handle_set_size_callback(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_internal_set_testing(
handle: *const RsvgHandle,
- testing: glib_sys::gboolean,
+ testing: glib::ffi::gboolean,
) {
rsvg_return_if_fail! {
rsvg_handle_internal_set_testing;
@@ -1249,13 +1249,13 @@ pub unsafe extern "C" fn rsvg_handle_internal_set_testing(
trait IntoGError {
type GlibResult;
- fn into_gerror(self, error: *mut *mut glib_sys::GError) -> Self::GlibResult;
+ fn into_gerror(self, error: *mut *mut glib::ffi::GError) -> Self::GlibResult;
}
impl<E: fmt::Display> IntoGError for Result<(), E> {
- type GlibResult = glib_sys::gboolean;
+ type GlibResult = glib::ffi::gboolean;
- fn into_gerror(self, error: *mut *mut glib_sys::GError) -> Self::GlibResult {
+ fn into_gerror(self, error: *mut *mut glib::ffi::GError) -> Self::GlibResult {
match self {
Ok(()) => true.to_glib(),
@@ -1270,10 +1270,10 @@ impl<E: fmt::Display> IntoGError for Result<(), E> {
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_read_stream_sync(
handle: *const RsvgHandle,
- stream: *mut gio_sys::GInputStream,
- cancellable: *mut gio_sys::GCancellable,
- error: *mut *mut glib_sys::GError,
-) -> glib_sys::gboolean {
+ stream: *mut gio::ffi::GInputStream,
+ cancellable: *mut gio::ffi::GCancellable,
+ error: *mut *mut glib::ffi::GError,
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_read_stream_sync => false.to_glib();
@@ -1298,8 +1298,8 @@ pub unsafe extern "C" fn rsvg_handle_write(
handle: *const RsvgHandle,
buf: *const u8,
count: usize,
- error: *mut *mut glib_sys::GError,
-) -> glib_sys::gboolean {
+ error: *mut *mut glib::ffi::GError,
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_write => false.to_glib();
@@ -1318,8 +1318,8 @@ pub unsafe extern "C" fn rsvg_handle_write(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_close(
handle: *const RsvgHandle,
- error: *mut *mut glib_sys::GError,
-) -> glib_sys::gboolean {
+ error: *mut *mut glib::ffi::GError,
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_close => false.to_glib();
@@ -1336,7 +1336,7 @@ pub unsafe extern "C" fn rsvg_handle_close(
pub unsafe extern "C" fn rsvg_handle_has_sub(
handle: *const RsvgHandle,
id: *const libc::c_char,
-) -> glib_sys::gboolean {
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_has_sub => false.to_glib();
@@ -1356,8 +1356,8 @@ pub unsafe extern "C" fn rsvg_handle_has_sub(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_render_cairo(
handle: *const RsvgHandle,
- cr: *mut cairo_sys::cairo_t,
-) -> glib_sys::gboolean {
+ cr: *mut cairo::ffi::cairo_t,
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_render_cairo => false.to_glib();
@@ -1375,9 +1375,9 @@ pub unsafe extern "C" fn rsvg_handle_render_cairo(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_render_cairo_sub(
handle: *const RsvgHandle,
- cr: *mut cairo_sys::cairo_t,
+ cr: *mut cairo::ffi::cairo_t,
id: *const libc::c_char,
-) -> glib_sys::gboolean {
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_render_cairo_sub => false.to_glib();
@@ -1396,7 +1396,7 @@ pub unsafe extern "C" fn rsvg_handle_render_cairo_sub(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_get_pixbuf(
handle: *const RsvgHandle,
-) -> *mut gdk_pixbuf_sys::GdkPixbuf {
+) -> *mut gdk_pixbuf::ffi::GdkPixbuf {
rsvg_return_val_if_fail! {
rsvg_handle_get_pixbuf => ptr::null_mut();
@@ -1418,7 +1418,7 @@ pub unsafe extern "C" fn rsvg_handle_get_pixbuf(
pub unsafe extern "C" fn rsvg_handle_get_pixbuf_sub(
handle: *const RsvgHandle,
id: *const libc::c_char,
-) -> *mut gdk_pixbuf_sys::GdkPixbuf {
+) -> *mut gdk_pixbuf::ffi::GdkPixbuf {
rsvg_return_val_if_fail! {
rsvg_handle_get_pixbuf_sub => ptr::null_mut();
@@ -1450,7 +1450,7 @@ pub unsafe extern "C" fn rsvg_handle_get_dimensions_sub(
handle: *const RsvgHandle,
dimension_data: *mut RsvgDimensionData,
id: *const libc::c_char,
-) -> glib_sys::gboolean {
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_get_dimensions_sub => false.to_glib();
@@ -1481,7 +1481,7 @@ pub unsafe extern "C" fn rsvg_handle_get_position_sub(
handle: *const RsvgHandle,
position_data: *mut RsvgPositionData,
id: *const libc::c_char,
-) -> glib_sys::gboolean {
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_get_position_sub => false.to_glib();
@@ -1513,7 +1513,7 @@ pub unsafe extern "C" fn rsvg_handle_get_position_sub(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_new() -> *const RsvgHandle {
- let obj: *mut gobject_sys::GObject = glib::Object::new(CHandle::get_type(), &[])
+ let obj: *mut glib::gobject_ffi::GObject = glib::Object::new(CHandle::get_type(), &[])
.unwrap()
.to_glib_full();
@@ -1522,7 +1522,7 @@ pub unsafe extern "C" fn rsvg_handle_new() -> *const RsvgHandle {
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_new_with_flags(flags: RsvgHandleFlags) -> *const RsvgHandle {
- let obj: *mut gobject_sys::GObject = glib::Object::new(
+ let obj: *mut glib::gobject_ffi::GObject = glib::Object::new(
CHandle::get_type(),
&[("flags", &HandleFlags::from_bits_truncate(flags))],
)
@@ -1535,7 +1535,7 @@ pub unsafe extern "C" fn rsvg_handle_new_with_flags(flags: RsvgHandleFlags) -> *
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_new_from_file(
filename: *const libc::c_char,
- error: *mut *mut glib_sys::GError,
+ error: *mut *mut glib::ffi::GError,
) -> *const RsvgHandle {
rsvg_return_val_if_fail! {
rsvg_handle_new_from_file => ptr::null();
@@ -1558,10 +1558,10 @@ pub unsafe extern "C" fn rsvg_handle_new_from_file(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_new_from_gfile_sync(
- file: *mut gio_sys::GFile,
+ file: *mut gio::ffi::GFile,
flags: RsvgHandleFlags,
- cancellable: *mut gio_sys::GCancellable,
- error: *mut *mut glib_sys::GError,
+ cancellable: *mut gio::ffi::GCancellable,
+ error: *mut *mut glib::ffi::GError,
) -> *const RsvgHandle {
rsvg_return_val_if_fail! {
rsvg_handle_new_from_gfile_sync => ptr::null();
@@ -1590,7 +1590,7 @@ pub unsafe extern "C" fn rsvg_handle_new_from_gfile_sync(
Err(e) => {
set_gerror(error, 0, &format!("{}", e));
- gobject_sys::g_object_unref(raw_handle as *mut _);
+ glib::gobject_ffi::g_object_unref(raw_handle as *mut _);
ptr::null_mut()
}
}
@@ -1598,11 +1598,11 @@ pub unsafe extern "C" fn rsvg_handle_new_from_gfile_sync(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_new_from_stream_sync(
- input_stream: *mut gio_sys::GInputStream,
- base_file: *mut gio_sys::GFile,
+ input_stream: *mut gio::ffi::GInputStream,
+ base_file: *mut gio::ffi::GFile,
flags: RsvgHandleFlags,
- cancellable: *mut gio_sys::GCancellable,
- error: *mut *mut glib_sys::GError,
+ cancellable: *mut gio::ffi::GCancellable,
+ error: *mut *mut glib::ffi::GError,
) -> *const RsvgHandle {
rsvg_return_val_if_fail! {
rsvg_handle_new_from_stream_sync => ptr::null();
@@ -1630,7 +1630,7 @@ pub unsafe extern "C" fn rsvg_handle_new_from_stream_sync(
Err(e) => {
set_gerror(error, 0, &format!("{}", e));
- gobject_sys::g_object_unref(raw_handle as *mut _);
+ glib::gobject_ffi::g_object_unref(raw_handle as *mut _);
ptr::null_mut()
}
}
@@ -1640,7 +1640,7 @@ pub unsafe extern "C" fn rsvg_handle_new_from_stream_sync(
pub unsafe extern "C" fn rsvg_handle_new_from_data(
data: *const u8,
data_len: usize,
- error: *mut *mut glib_sys::GError,
+ error: *mut *mut glib::ffi::GError,
) -> *const RsvgHandle {
rsvg_return_val_if_fail! {
rsvg_handle_new_from_data => ptr::null();
@@ -1663,7 +1663,7 @@ pub unsafe extern "C" fn rsvg_handle_new_from_data(
assert!(data_len <= std::isize::MAX as usize);
let data_len = data_len as isize;
- let raw_stream = gio_sys::g_memory_input_stream_new_from_data(data as *mut u8, data_len, None);
+ let raw_stream = gio::ffi::g_memory_input_stream_new_from_data(data as *mut u8, data_len, None);
let ret = rsvg_handle_new_from_stream_sync(
raw_stream,
@@ -1673,12 +1673,12 @@ pub unsafe extern "C" fn rsvg_handle_new_from_data(
error,
);
- gobject_sys::g_object_unref(raw_stream as *mut _);
+ glib::gobject_ffi::g_object_unref(raw_stream as *mut _);
ret
}
unsafe fn set_out_param<T: Copy>(
- out_has_param: *mut glib_sys::gboolean,
+ out_has_param: *mut glib::ffi::gboolean,
out_param: *mut T,
value: &Option<T>,
) {
@@ -1699,7 +1699,7 @@ unsafe fn set_out_param<T: Copy>(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_free(handle: *mut RsvgHandle) {
- gobject_sys::g_object_unref(handle as *mut _);
+ glib::gobject_ffi::g_object_unref(handle as *mut _);
}
#[no_mangle]
@@ -1707,8 +1707,8 @@ pub unsafe extern "C" fn rsvg_handle_set_stylesheet(
handle: *const RsvgHandle,
css: *const u8,
css_len: usize,
- error: *mut *mut glib_sys::GError,
-) -> glib_sys::gboolean {
+ error: *mut *mut glib::ffi::GError,
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_set_stylesheet => false.to_glib();
@@ -1739,11 +1739,11 @@ pub unsafe extern "C" fn rsvg_handle_set_stylesheet(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_get_intrinsic_dimensions(
handle: *const RsvgHandle,
- out_has_width: *mut glib_sys::gboolean,
+ out_has_width: *mut glib::ffi::gboolean,
out_width: *mut RsvgLength,
- out_has_height: *mut glib_sys::gboolean,
+ out_has_height: *mut glib::ffi::gboolean,
out_height: *mut RsvgLength,
- out_has_viewbox: *mut glib_sys::gboolean,
+ out_has_viewbox: *mut glib::ffi::gboolean,
out_viewbox: *mut RsvgRectangle,
) {
rsvg_return_if_fail! {
@@ -1772,7 +1772,7 @@ pub unsafe extern "C" fn rsvg_handle_get_intrinsic_size_in_pixels(
handle: *const RsvgHandle,
out_width: *mut f64,
out_height: *mut f64,
-) -> glib_sys::gboolean {
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_get_intrinsic_size_in_pixels => false.to_glib();
@@ -1801,10 +1801,10 @@ pub unsafe extern "C" fn rsvg_handle_get_intrinsic_size_in_pixels(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_render_document(
handle: *const RsvgHandle,
- cr: *mut cairo_sys::cairo_t,
+ cr: *mut cairo::ffi::cairo_t,
viewport: *const RsvgRectangle,
- error: *mut *mut glib_sys::GError,
-) -> glib_sys::gboolean {
+ error: *mut *mut glib::ffi::GError,
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_render_document => false.to_glib();
@@ -1828,8 +1828,8 @@ pub unsafe extern "C" fn rsvg_handle_get_geometry_for_layer(
viewport: *const RsvgRectangle,
out_ink_rect: *mut RsvgRectangle,
out_logical_rect: *mut RsvgRectangle,
- error: *mut *mut glib_sys::GError,
-) -> glib_sys::gboolean {
+ error: *mut *mut glib::ffi::GError,
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_get_geometry_for_layer => false.to_glib();
@@ -1859,11 +1859,11 @@ pub unsafe extern "C" fn rsvg_handle_get_geometry_for_layer(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_render_layer(
handle: *const RsvgHandle,
- cr: *mut cairo_sys::cairo_t,
+ cr: *mut cairo::ffi::cairo_t,
id: *const libc::c_char,
viewport: *const RsvgRectangle,
- error: *mut *mut glib_sys::GError,
-) -> glib_sys::gboolean {
+ error: *mut *mut glib::ffi::GError,
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_render_layer => false.to_glib();
@@ -1887,8 +1887,8 @@ pub unsafe extern "C" fn rsvg_handle_get_geometry_for_element(
id: *const libc::c_char,
out_ink_rect: *mut RsvgRectangle,
out_logical_rect: *mut RsvgRectangle,
- error: *mut *mut glib_sys::GError,
-) -> glib_sys::gboolean {
+ error: *mut *mut glib::ffi::GError,
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_get_geometry_for_element => false.to_glib();
@@ -1917,11 +1917,11 @@ pub unsafe extern "C" fn rsvg_handle_get_geometry_for_element(
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_render_element(
handle: *const RsvgHandle,
- cr: *mut cairo_sys::cairo_t,
+ cr: *mut cairo::ffi::cairo_t,
id: *const libc::c_char,
element_viewport: *const RsvgRectangle,
- error: *mut *mut glib_sys::GError,
-) -> glib_sys::gboolean {
+ error: *mut *mut glib::ffi::GError,
+) -> glib::ffi::gboolean {
rsvg_return_val_if_fail! {
rsvg_handle_render_element => false.to_glib();
@@ -2054,10 +2054,10 @@ impl fmt::Display for PathOrUrl {
}
}
-fn check_cairo_context(cr: *mut cairo_sys::cairo_t) -> Result<cairo::Context, RenderingError> {
- let status = unsafe { cairo_sys::cairo_status(cr) };
+fn check_cairo_context(cr: *mut cairo::ffi::cairo_t) -> Result<cairo::Context, RenderingError> {
+ let status = unsafe { cairo::ffi::cairo_status(cr) };
- if status == cairo_sys::STATUS_SUCCESS {
+ if status == cairo::ffi::STATUS_SUCCESS {
Ok(unsafe { from_glib_none(cr) })
} else {
let status: cairo::Error = status.into();
@@ -2073,7 +2073,7 @@ fn check_cairo_context(cr: *mut cairo_sys::cairo_t) -> Result<cairo::Context, Re
}
}
-pub(crate) fn set_gerror(err: *mut *mut glib_sys::GError, code: u32, msg: &str) {
+pub(crate) fn set_gerror(err: *mut *mut glib::ffi::GError, code: u32, msg: &str) {
unsafe {
// this is RSVG_ERROR_FAILED, the only error code available in RsvgError
assert!(code == 0);
@@ -2085,7 +2085,7 @@ pub(crate) fn set_gerror(err: *mut *mut glib_sys::GError, code: u32, msg: &str)
// passed a NULL GError and so we had no easy way to see what was wrong.
rsvg_log!("{}", msg);
- glib_sys::g_set_error_literal(
+ glib::ffi::g_set_error_literal(
err,
rsvg_error_quark(),
code as libc::c_int,
@@ -2128,7 +2128,7 @@ impl ErrorDomain for RsvgError {
}
#[no_mangle]
-pub extern "C" fn rsvg_error_quark() -> glib_sys::GQuark {
+pub extern "C" fn rsvg_error_quark() -> glib::ffi::GQuark {
RsvgError::domain().to_glib()
}
diff --git a/src/c_api/messages.rs b/src/c_api/messages.rs
index 0b01cf37..564f506c 100644
--- a/src/c_api/messages.rs
+++ b/src/c_api/messages.rs
@@ -5,8 +5,8 @@
//! prefix, to be clear that they should only be used from the implementation of the C API
//! and not from the main Rust code of the library.
+use glib::ffi::{g_log_structured_array, GLogField, G_LOG_LEVEL_CRITICAL, G_LOG_LEVEL_WARNING};
use glib::translate::*;
-use glib_sys::{g_log_structured_array, GLogField, G_LOG_LEVEL_CRITICAL, G_LOG_LEVEL_WARNING};
/*
G_LOG_LEVEL_CRITICAL = 1 << 3,
@@ -40,7 +40,7 @@ use glib_sys::{g_log_structured_array, GLogField, G_LOG_LEVEL_CRITICAL, G_LOG_LE
///
/// If the implementation of g_warning() or g_critical() changes, we'll have
/// to change this function.
-fn rsvg_g_log(level: glib_sys::GLogLevelFlags, msg: &str) {
+fn rsvg_g_log(level: glib::ffi::GLogLevelFlags, msg: &str) {
// stolen from gmessages.c:log_level_to_priority()
let priority = match level {
G_LOG_LEVEL_WARNING | G_LOG_LEVEL_CRITICAL => b"4\0",
@@ -88,7 +88,7 @@ fn rsvg_g_log(level: glib_sys::GLogLevelFlags, msg: &str) {
/// so it's best to have a warning on the console to at least have a hope of someone
/// noticing the error.
pub(crate) fn rsvg_g_warning(msg: &str) {
- rsvg_g_log(glib_sys::G_LOG_LEVEL_WARNING, msg);
+ rsvg_g_log(glib::ffi::G_LOG_LEVEL_WARNING, msg);
}
/// Replacement for `g_critical()`.
@@ -99,7 +99,7 @@ pub(crate) fn rsvg_g_warning(msg: &str) {
/// critical message, and return. Development versions of GNOME will crash the program
/// if this happens; release versions will ignore the error.
pub(crate) fn rsvg_g_critical(msg: &str) {
- rsvg_g_log(glib_sys::G_LOG_LEVEL_CRITICAL, msg);
+ rsvg_g_log(glib::ffi::G_LOG_LEVEL_CRITICAL, msg);
}
/// Replacement for `g_return_if_fail()`.
@@ -113,7 +113,7 @@ macro_rules! rsvg_return_if_fail {
} => {
$(
if !$condition {
- glib_sys::g_return_if_fail_warning(
+ glib::ffi::g_return_if_fail_warning(
b"librsvg\0" as *const u8 as *const _,
concat!(stringify!($func_name), "\0").as_ptr() as *const _,
concat!(stringify!($condition), "\0").as_ptr() as *const _,
@@ -133,7 +133,7 @@ macro_rules! rsvg_return_val_if_fail {
} => {
$(
if !$condition {
- glib_sys::g_return_if_fail_warning(
+ glib::ffi::g_return_if_fail_warning(
b"librsvg\0" as *const u8 as *const _,
concat!(stringify!($func_name), "\0").as_ptr() as *const _,
concat!(stringify!($condition), "\0").as_ptr() as *const _,
diff --git a/src/c_api/pixbuf_utils.rs b/src/c_api/pixbuf_utils.rs
index dbc99a0c..71e8b3f5 100644
--- a/src/c_api/pixbuf_utils.rs
+++ b/src/c_api/pixbuf_utils.rs
@@ -151,8 +151,8 @@ fn render_to_pixbuf_at_size(
unsafe fn pixbuf_from_file_with_size_mode(
filename: *const libc::c_char,
size_mode: &SizeMode,
- error: *mut *mut glib_sys::GError,
-) -> *mut gdk_pixbuf_sys::GdkPixbuf {
+ error: *mut *mut glib::ffi::GError,
+) -> *mut gdk_pixbuf::ffi::GdkPixbuf {
let path = PathBuf::from_glib_none(filename);
let handle = match Loader::new().read_path(path) {
@@ -194,8 +194,8 @@ unsafe fn pixbuf_from_file_with_size_mode(
#[no_mangle]
pub unsafe extern "C" fn rsvg_pixbuf_from_file(
filename: *const libc::c_char,
- error: *mut *mut glib_sys::GError,
-) -> *mut gdk_pixbuf_sys::GdkPixbuf {
+ error: *mut *mut glib::ffi::GError,
+) -> *mut gdk_pixbuf::ffi::GdkPixbuf {
rsvg_return_val_if_fail! {
rsvg_pixbuf_from_file => ptr::null_mut();
@@ -221,8 +221,8 @@ pub unsafe extern "C" fn rsvg_pixbuf_from_file_at_size(
filename: *const libc::c_char,
width: libc::c_int,
height: libc::c_int,
- error: *mut *mut glib_sys::GError,
-) -> *mut gdk_pixbuf_sys::GdkPixbuf {
+ error: *mut *mut glib::ffi::GError,
+) -> *mut gdk_pixbuf::ffi::GdkPixbuf {
rsvg_return_val_if_fail! {
rsvg_pixbuf_from_file_at_size => ptr::null_mut();
@@ -249,8 +249,8 @@ pub unsafe extern "C" fn rsvg_pixbuf_from_file_at_zoom(
filename: *const libc::c_char,
x_zoom: libc::c_double,
y_zoom: libc::c_double,
- error: *mut *mut glib_sys::GError,
-) -> *mut gdk_pixbuf_sys::GdkPixbuf {
+ error: *mut *mut glib::ffi::GError,
+) -> *mut gdk_pixbuf::ffi::GdkPixbuf {
rsvg_return_val_if_fail! {
rsvg_pixbuf_from_file_at_zoom => ptr::null_mut();
@@ -279,8 +279,8 @@ pub unsafe extern "C" fn rsvg_pixbuf_from_file_at_zoom_with_max(
y_zoom: libc::c_double,
max_width: libc::c_int,
max_height: libc::c_int,
- error: *mut *mut glib_sys::GError,
-) -> *mut gdk_pixbuf_sys::GdkPixbuf {
+ error: *mut *mut glib::ffi::GError,
+) -> *mut gdk_pixbuf::ffi::GdkPixbuf {
rsvg_return_val_if_fail! {
rsvg_pixbuf_from_file_at_zoom_with_max => ptr::null_mut();
@@ -308,8 +308,8 @@ pub unsafe extern "C" fn rsvg_pixbuf_from_file_at_max_size(
filename: *const libc::c_char,
max_width: libc::c_int,
max_height: libc::c_int,
- error: *mut *mut glib_sys::GError,
-) -> *mut gdk_pixbuf_sys::GdkPixbuf {
+ error: *mut *mut glib::ffi::GError,
+) -> *mut gdk_pixbuf::ffi::GdkPixbuf {
rsvg_return_val_if_fail! {
rsvg_pixbuf_from_file_at_max_size => ptr::null_mut();
diff --git a/src/drawing_ctx.rs b/src/drawing_ctx.rs
index ce2b4164..5ff8049a 100644
--- a/src/drawing_ctx.rs
+++ b/src/drawing_ctx.rs
@@ -3,7 +3,7 @@
use cssparser::RGBA;
use float_cmp::approx_eq;
use once_cell::sync::Lazy;
-use pango::FontMapExt;
+use pango::prelude::FontMapExt;
use regex::{Captures, Regex};
use std::borrow::Cow;
use std::cell::RefCell;
diff --git a/src/handle.rs b/src/handle.rs
index f8cc9ff6..64c463da 100644
--- a/src/handle.rs
+++ b/src/handle.rs
@@ -14,7 +14,6 @@ use crate::node::{CascadedValues, Node, NodeBorrow};
use crate::rect::Rect;
use crate::structure::IntrinsicDimensions;
use crate::url_resolver::{AllowedUrl, UrlResolver};
-use crate::util::check_cairo_context;
/// Loading options for SVG documents.
#[derive(Clone)]
@@ -247,7 +246,7 @@ impl Handle {
dpi: Dpi,
is_testing: bool,
) -> Result<(), RenderingError> {
- check_cairo_context(cr)?;
+ cr.status()?;
let node = self.get_node_or_root(id)?;
let root = self.document.root();
@@ -327,7 +326,7 @@ impl Handle {
dpi: Dpi,
is_testing: bool,
) -> Result<(), RenderingError> {
- check_cairo_context(cr)?;
+ cr.status()?;
let node = self.get_node_or_root(id)?;
diff --git a/src/surface_utils/shared_surface.rs b/src/surface_utils/shared_surface.rs
index ed64dcdc..d570fdad 100644
--- a/src/surface_utils/shared_surface.rs
+++ b/src/surface_utils/shared_surface.rs
@@ -205,7 +205,7 @@ impl ImageSurface<Shared> {
assert_eq!(surface.get_format(), cairo::Format::ARgb32);
let reference_count =
- unsafe { cairo_sys::cairo_surface_get_reference_count(surface.to_raw_none()) };
+ unsafe { cairo::ffi::cairo_surface_get_reference_count(surface.to_raw_none()) };
assert_eq!(reference_count, 1);
let (width, height) = (surface.get_width(), surface.get_height());
@@ -217,9 +217,10 @@ impl ImageSurface<Shared> {
surface.flush();
- let data_ptr =
- NonNull::new(unsafe { cairo_sys::cairo_image_surface_get_data(surface.to_raw_none()) })
- .unwrap();
+ let data_ptr = NonNull::new(unsafe {
+ cairo::ffi::cairo_image_surface_get_data(surface.to_raw_none())
+ })
+ .unwrap();
let stride = surface.get_stride() as isize;
@@ -265,7 +266,7 @@ impl ImageSurface<Shared> {
#[inline]
pub fn into_image_surface(self) -> Result<cairo::ImageSurface, cairo::Error> {
let reference_count =
- unsafe { cairo_sys::cairo_surface_get_reference_count(self.surface.to_raw_none()) };
+ unsafe { cairo::ffi::cairo_surface_get_reference_count(self.surface.to_raw_none()) };
if reference_count == 1 {
Ok(self.surface)
@@ -948,7 +949,7 @@ impl ImageSurface<Shared> {
// Don't forget to manually mark the surface as dirty (due to usage of
// `UnsafeSendPixelData`).
- unsafe { cairo_sys::cairo_surface_mark_dirty(output_surface.to_raw_none()) }
+ unsafe { cairo::ffi::cairo_surface_mark_dirty(output_surface.to_raw_none()) }
}
/// Performs a horizontal or vertical box blur.
@@ -1307,9 +1308,10 @@ impl ImageSurface<Exclusive> {
// why we disallow zero-sized surfaces here.
assert!(width > 0 && height > 0);
- let data_ptr =
- NonNull::new(unsafe { cairo_sys::cairo_image_surface_get_data(surface.to_raw_none()) })
- .unwrap();
+ let data_ptr = NonNull::new(unsafe {
+ cairo::ffi::cairo_image_surface_get_data(surface.to_raw_none())
+ })
+ .unwrap();
let stride = surface.get_stride() as isize;
diff --git a/src/util.rs b/src/util.rs
index bd5e29bf..e308359a 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -4,8 +4,6 @@ use std::borrow::Cow;
use std::ffi::CStr;
use std::str;
-use crate::error::RenderingError;
-
/// Converts a `char *` which is known to be valid UTF-8 into a `&str`
///
/// The usual `from_glib_none(s)` allocates an owned String. The
@@ -55,21 +53,3 @@ macro_rules! enum_default {
}
};
}
-
-/// Return an error if a Cairo context is in error.
-///
-/// https://github.com/gtk-rs/gtk-rs/issues/74 - with cairo-rs 0.9.0, the `Context` objet
-/// lost the ability to get its error status queried. So we do it by hand with `cairo_sys`.
-pub fn check_cairo_context(cr: &cairo::Context) -> Result<(), RenderingError> {
- unsafe {
- let cr_raw = cr.to_raw_none();
-
- let status = cairo_sys::cairo_status(cr_raw);
- if status == cairo_sys::STATUS_SUCCESS {
- Ok(())
- } else {
- let status: cairo::Error = status.into();
- Err(RenderingError::from(status))
- }
- }
-}
diff --git a/src/xml/xml2.rs b/src/xml/xml2.rs
index 6af6860a..b2f9785f 100644
--- a/src/xml/xml2.rs
+++ b/src/xml/xml2.rs
@@ -3,7 +3,7 @@
#![allow(clippy::upper_case_acronyms)]
#![allow(non_snake_case, non_camel_case_types)]
-use glib_sys::gpointer;
+use glib::ffi::gpointer;
pub const XML_CHAR_ENCODING_NONE: libc::c_int = 0;
diff --git a/tests/src/utils.rs b/tests/src/utils.rs
index fea62327..180062a7 100644
--- a/tests/src/utils.rs
+++ b/tests/src/utils.rs
@@ -82,7 +82,7 @@ mod pango_ft2 {
}
let font_map = FontMap::new_for_font_type(cairo::FontType::FontTypeFt).unwrap();
- let raw_font_map: *mut pango_sys::PangoFontMap = font_map.to_glib_none().0;
+ let raw_font_map: *mut pango::ffi::PangoFontMap = font_map.to_glib_none().0;
pango_fc_font_map_set_config(raw_font_map as *mut _, config);
fontconfig::FcConfigDestroy(config);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]