summaryrefslogtreecommitdiff
path: root/rsvg_internals
diff options
context:
space:
mode:
authorPaolo Borelli <pborelli@gnome.org>2019-01-08 13:58:07 +0100
committerPaolo Borelli <pborelli@gnome.org>2019-01-08 13:58:07 +0100
commitce43e689f5620c9361143a2a7a97f46a293bea63 (patch)
treec907a12b8b130a2279e5b99ca9ece4b050d51ddf /rsvg_internals
parent1579902a9ebf04d69f652cfea849750e6ff9e784 (diff)
downloadlibrsvg-ce43e689f5620c9361143a2a7a97f46a293bea63.tar.gz
handle: cleanup read_stream_sync
Diffstat (limited to 'rsvg_internals')
-rw-r--r--rsvg_internals/src/handle.rs28
1 files changed, 6 insertions, 22 deletions
diff --git a/rsvg_internals/src/handle.rs b/rsvg_internals/src/handle.rs
index 9729c324..17a79ce5 100644
--- a/rsvg_internals/src/handle.rs
+++ b/rsvg_internals/src/handle.rs
@@ -164,37 +164,21 @@ impl Handle {
) -> Result<(), LoadingError> {
self.load_state.set(LoadState::Loading);
- self.read_stream_internal(handle, stream, cancellable)
- .and_then(|_| {
- self.load_state.set(LoadState::ClosedOk);
- Ok(())
- })
+ let svg = Svg::load_from_stream(&self.load_options(), handle, stream, cancellable)
.map_err(|e| {
self.load_state.set(LoadState::ClosedError);
e
- })
+ })?;
+
+ *self.svg.borrow_mut() = Some(Rc::new(svg));
+ self.load_state.set(LoadState::ClosedOk);
+ Ok(())
}
fn load_options(&self) -> LoadOptions {
LoadOptions::new(self.load_flags.get(), self.base_url.borrow().clone())
}
- fn read_stream_internal(
- &mut self,
- handle: *mut RsvgHandle,
- stream: gio::InputStream,
- cancellable: Option<gio::Cancellable>,
- ) -> Result<(), LoadingError> {
- *self.svg.borrow_mut() = Some(Rc::new(Svg::load_from_stream(
- &self.load_options(),
- handle,
- stream,
- cancellable,
- )?));
-
- Ok(())
- }
-
pub fn write(&mut self, handle: *mut RsvgHandle, buf: &[u8]) {
assert!(
self.load_state.get() == LoadState::Start