summaryrefslogtreecommitdiff
path: root/src/cairo-script-surface.c
diff options
context:
space:
mode:
authorUli Schlachter <psychon@znc.in>2022-12-31 15:13:59 +0000
committerUli Schlachter <psychon@znc.in>2022-12-31 15:13:59 +0000
commit7de261b0b16f2eec4dbe7d64484e9b5fc9a95e19 (patch)
treeff916b5fee7cb237280ef055d9807a5dc58de281 /src/cairo-script-surface.c
parent001df8ad171bb05112f934d7ff2d1abbedea4472 (diff)
parent6a81bf8201ddeb8ff9b2174facc35e4076f08dd8 (diff)
downloadcairo-7de261b0b16f2eec4dbe7d64484e9b5fc9a95e19.tar.gz
Merge branch 'script-bug-277' into 'master'
script: Implement device finish Closes #277 See merge request cairo/cairo!292
Diffstat (limited to 'src/cairo-script-surface.c')
-rw-r--r--src/cairo-script-surface.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/cairo-script-surface.c b/src/cairo-script-surface.c
index 46a0a4f79..7901b4c35 100644
--- a/src/cairo-script-surface.c
+++ b/src/cairo-script-surface.c
@@ -2113,6 +2113,16 @@ _device_flush (void *abstract_device)
}
static void
+_device_finish (void *abstract_device)
+{
+ cairo_script_context_t *ctx = abstract_device;
+
+ cairo_status_t status = _cairo_output_stream_close (ctx->stream);
+ status = _cairo_device_set_error (&ctx->base, status);
+ (void) status;
+}
+
+static void
_device_destroy (void *abstract_device)
{
cairo_script_context_t *ctx = abstract_device;
@@ -3731,7 +3741,7 @@ static const cairo_device_backend_t _cairo_script_device_backend = {
NULL, NULL, /* lock, unlock */
_device_flush, /* flush */
- NULL, /* finish */
+ _device_finish, /* finish */
_device_destroy
};