From 79ce683b4e6d34fe327b00f1e427e476016cfab0 Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sun, 4 Apr 2010 12:41:19 +0000 Subject: Most of a stop implementation. Remaining work: 1) Clone content_html_data 2) Cloning content_css_data requires the charset of the old content 3) Calling hlcache_handle_abort() before a content has been created must clean up the retrieval context. svn path=/trunk/netsurf/; revision=10236 --- image/rsvg.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'image/rsvg.c') diff --git a/image/rsvg.c b/image/rsvg.c index c47e9a078..02455733e 100644 --- a/image/rsvg.c +++ b/image/rsvg.c @@ -207,4 +207,28 @@ void rsvg_destroy(struct content *c) return; } +bool rsvg_clone(const struct content *old, struct content *new_content) +{ + const char *data; + unsigned long size; + + /* Simply replay create/process/convert */ + if (rsvg_create(new_content, NULL) == false) + return false; + + data = content__get_source_data(new_content, &size); + if (size > 0) { + if (rsvg_process_data(new_content, data, size) == false) + return false; + } + + if (old->status == CONTENT_STATUS_READY || + old->status == CONTENT_STATUS_DONE) { + if (rsvg_convert(new_content) == false) + return false; + } + + return true; +} + #endif /* WITH_RSVG */ -- cgit v1.2.3