[librsvg] handle: move is_loaded to rust
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] handle: move is_loaded to rust
- Date: Sat, 29 Dec 2018 18:06:29 +0000 (UTC)
commit f3bde8ff35e74115ce9e4ba0ef4496ced0ec7591
Author: Paolo Borelli <pborelli gnome org>
Date: Sat Dec 29 12:39:26 2018 +0100
handle: move is_loaded to rust
librsvg/rsvg-handle.c | 41 ++++++++---------------------------------
rsvg_internals/src/handle.rs | 29 +++++++++++++++++++++++++++++
rsvg_internals/src/lib.rs | 1 +
3 files changed, 38 insertions(+), 33 deletions(-)
---
diff --git a/librsvg/rsvg-handle.c b/librsvg/rsvg-handle.c
index ee790c8c..eee914f3 100644
--- a/librsvg/rsvg-handle.c
+++ b/librsvg/rsvg-handle.c
@@ -162,6 +162,7 @@ extern GFile *rsvg_handle_rust_get_base_gfile (RsvgHandleRust *raw_handle);
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);
+extern gboolean rsvg_handle_rust_is_loaded (RsvgHandle *handle);
extern gboolean rsvg_handle_rust_read_stream_sync (RsvgHandle *handle,
GInputStream *stream,
GCancellable *cancellable,
@@ -967,32 +968,6 @@ rsvg_handle_get_rust (RsvgHandle *handle)
return handle->priv->rust_handle;
}
-static gboolean
-is_loaded (RsvgHandle *handle)
-{
- switch (rsvg_handle_rust_get_load_state (handle->priv->rust_handle)) {
- case RSVG_HANDLE_STATE_START:
- g_warning ("RsvgHandle has not been loaded");
- return FALSE;
-
- case RSVG_HANDLE_STATE_LOADING:
- g_warning ("RsvgHandle is still loading; call rsvg_handle_close() first");
- return FALSE;
-
- case RSVG_HANDLE_STATE_CLOSED_OK:
- return TRUE;
-
- case RSVG_HANDLE_STATE_CLOSED_ERROR:
- g_warning ("RsvgHandle could not read or parse the SVG; did you check for errors\n"
- "during the loading stage?");
- return FALSE;
-
- default:
- g_assert_not_reached();
- return FALSE;
- }
-}
-
/**
* rsvg_handle_render_cairo_sub:
* @handle: A #RsvgHandle
@@ -1015,7 +990,7 @@ rsvg_handle_render_cairo_sub (RsvgHandle * handle, cairo_t * cr, const char *id)
g_return_val_if_fail (RSVG_IS_HANDLE (handle), FALSE);
g_return_val_if_fail (cr != NULL, FALSE);
- if (!is_loaded (handle)) {
+ if (!rsvg_handle_rust_is_loaded (handle)) {
return FALSE;
}
@@ -1056,7 +1031,7 @@ rsvg_handle_get_dimensions (RsvgHandle * handle, RsvgDimensionData * dimension_d
g_return_if_fail (RSVG_IS_HANDLE (handle));
g_return_if_fail (dimension_data != NULL);
- if (!is_loaded (handle)) {
+ if (!rsvg_handle_rust_is_loaded (handle)) {
return;
}
@@ -1096,7 +1071,7 @@ rsvg_handle_get_dimensions_sub (RsvgHandle * handle, RsvgDimensionData * dimensi
g_return_val_if_fail (RSVG_IS_HANDLE (handle), FALSE);
g_return_val_if_fail (dimension_data, FALSE);
- if (!is_loaded (handle)) {
+ if (!rsvg_handle_rust_is_loaded (handle)) {
return FALSE;
}
@@ -1138,7 +1113,7 @@ rsvg_handle_get_geometry_sub (RsvgHandle * handle, RsvgRectangle * ink_rect, Rsv
{
g_return_val_if_fail (RSVG_IS_HANDLE (handle), FALSE);
- if (!is_loaded (handle)) {
+ if (!rsvg_handle_rust_is_loaded (handle)) {
return FALSE;
}
@@ -1168,7 +1143,7 @@ rsvg_handle_get_position_sub (RsvgHandle * handle, RsvgPositionData * position_d
g_return_val_if_fail (RSVG_IS_HANDLE (handle), FALSE);
g_return_val_if_fail (position_data != NULL, FALSE);
- if (!is_loaded (handle)) {
+ if (!rsvg_handle_rust_is_loaded (handle)) {
return FALSE;
}
@@ -1210,7 +1185,7 @@ rsvg_handle_has_sub (RsvgHandle *handle,
{
g_return_val_if_fail (RSVG_IS_HANDLE (handle), FALSE);
- if (!is_loaded (handle)) {
+ if (!rsvg_handle_rust_is_loaded (handle)) {
return FALSE;
}
@@ -1244,7 +1219,7 @@ rsvg_handle_get_pixbuf_sub (RsvgHandle * handle, const char *id)
{
g_return_val_if_fail (RSVG_IS_HANDLE (handle), NULL);
- if (!is_loaded (handle)) {
+ if (!rsvg_handle_rust_is_loaded (handle)) {
return NULL;
}
diff --git a/rsvg_internals/src/handle.rs b/rsvg_internals/src/handle.rs
index 806c91ec..12d25224 100644
--- a/rsvg_internals/src/handle.rs
+++ b/rsvg_internals/src/handle.rs
@@ -821,6 +821,35 @@ pub unsafe extern "C" fn rsvg_handle_rust_get_load_state(raw_handle: *const Hand
rhandle.load_state.get()
}
+#[no_mangle]
+pub unsafe extern "C" fn rsvg_handle_rust_is_loaded(
+ handle: *const RsvgHandle,
+) -> glib_sys::gboolean {
+ let rhandle = get_rust_handle(handle);
+
+ match rhandle.load_state.get() {
+ LoadState::Start => {
+ rsvg_g_warning("RsvgHandle has not been loaded");
+ false.to_glib()
+ }
+
+ LoadState::Loading => {
+ rsvg_g_warning("RsvgHandle is still loading; call rsvg_handle_close() first");
+ false.to_glib()
+ }
+
+ LoadState::ClosedOk => true.to_glib(),
+
+ LoadState::ClosedError => {
+ rsvg_g_warning(
+ "RsvgHandle could not read or parse the SVG; did you check for errors during the \
+ loading stage?",
+ );
+ false.to_glib()
+ }
+ }
+}
+
#[no_mangle]
pub unsafe extern "C" fn rsvg_handle_rust_read_stream_sync(
handle: *mut RsvgHandle,
diff --git a/rsvg_internals/src/lib.rs b/rsvg_internals/src/lib.rs
index f8a66c23..33901690 100644
--- a/rsvg_internals/src/lib.rs
+++ b/rsvg_internals/src/lib.rs
@@ -47,6 +47,7 @@ pub use handle::{
rsvg_handle_rust_get_load_state,
rsvg_handle_rust_get_pixbuf_sub,
rsvg_handle_rust_has_sub,
+ rsvg_handle_rust_is_loaded,
rsvg_handle_rust_new,
rsvg_handle_rust_read_stream_sync,
rsvg_handle_rust_render_cairo_sub,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]