diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2018-06-29 16:46:17 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2018-07-05 15:32:34 +0200 |
commit | ea7403b4c172338dfe7f371302f82859921e60af (patch) | |
tree | 4a3fbf8ea35cb53fcbf395f096cf61ffda7b40be /source/svg/svg-parse.c | |
parent | 4a99615a609eec2b84bb2341d74fac46a5998137 (diff) | |
download | mupdf-ea7403b4c172338dfe7f371302f82859921e60af.tar.xz |
Pass matrices by value: device and document interface.
Diffstat (limited to 'source/svg/svg-parse.c')
-rw-r--r-- | source/svg/svg-parse.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/source/svg/svg-parse.c b/source/svg/svg-parse.c index 5c7fc33a..c5b0a7db 100644 --- a/source/svg/svg-parse.c +++ b/source/svg/svg-parse.c @@ -117,8 +117,8 @@ svg_parse_angle(const char *str) } /* Coordinate transformations */ -void -svg_parse_transform(fz_context *ctx, svg_document *doc, char *str, fz_matrix *transform) +fz_matrix +svg_parse_transform(fz_context *ctx, svg_document *doc, char *str, fz_matrix transform) { char keyword[20]; int keywordlen; @@ -214,7 +214,7 @@ svg_parse_transform(fz_context *ctx, svg_document *doc, char *str, fz_matrix *tr m.e = args[4]; m.f = args[5]; - *transform = fz_concat(*transform, m); + transform = fz_concat(transform, m); } else if (!strcmp(keyword, "translate")) @@ -222,15 +222,15 @@ svg_parse_transform(fz_context *ctx, svg_document *doc, char *str, fz_matrix *tr if (nargs != 2) fz_throw(ctx, FZ_ERROR_SYNTAX, "wrong number of arguments to translate(): %d", nargs); - *transform = fz_pre_translate(*transform, args[0], args[1]); + transform = fz_pre_translate(transform, args[0], args[1]); } else if (!strcmp(keyword, "scale")) { if (nargs == 1) - *transform = fz_pre_scale(*transform, args[0], args[0]); + transform = fz_pre_scale(transform, args[0], args[0]); else if (nargs == 2) - *transform = fz_pre_scale(*transform, args[0], args[1]); + transform = fz_pre_scale(transform, args[0], args[1]); else fz_throw(ctx, FZ_ERROR_SYNTAX, "wrong number of arguments to scale(): %d", nargs); } @@ -239,7 +239,7 @@ svg_parse_transform(fz_context *ctx, svg_document *doc, char *str, fz_matrix *tr { if (nargs != 1) fz_throw(ctx, FZ_ERROR_SYNTAX, "wrong number of arguments to rotate(): %d", nargs); - *transform = fz_pre_rotate(*transform, args[0]); + transform = fz_pre_rotate(transform, args[0]); } else if (!strcmp(keyword, "skewX")) @@ -256,7 +256,7 @@ svg_parse_transform(fz_context *ctx, svg_document *doc, char *str, fz_matrix *tr m.e = 0; m.f = 0; - *transform = fz_concat(*transform, m); + transform = fz_concat(transform, m); } else if (!strcmp(keyword, "skewY")) @@ -273,7 +273,7 @@ svg_parse_transform(fz_context *ctx, svg_document *doc, char *str, fz_matrix *tr m.e = 0; m.f = 0; - *transform = fz_concat(*transform, m); + transform = fz_concat(transform, m); } else @@ -281,4 +281,6 @@ svg_parse_transform(fz_context *ctx, svg_document *doc, char *str, fz_matrix *tr fz_throw(ctx, FZ_ERROR_SYNTAX, "unknown transform function: %s", keyword); } } + + return transform; } |