diff options
author | Sebastian Rasmussen <sebras@gmail.com> | 2017-06-12 00:17:04 +0800 |
---|---|---|
committer | Sebastian Rasmussen <sebras@gmail.com> | 2017-06-27 20:29:54 +0800 |
commit | f82717d5909ddf795e4c043ec403e6415e85bc71 (patch) | |
tree | 5d33b2965e7e703a0633baccd0282091c6a6ecb0 | |
parent | f9064020d46660212b45b8171274830af6447b50 (diff) | |
download | mupdf-f82717d5909ddf795e4c043ec403e6415e85bc71.tar.xz |
Make the entire cached color converter defined in case of error.
Previously some parts were left undefined which caused problems
when finalizing it during the error cleanup.
-rw-r--r-- | source/fitz/colorspace.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/source/fitz/colorspace.c b/source/fitz/colorspace.c index 05b46ac6..ce608ef0 100644 --- a/source/fitz/colorspace.c +++ b/source/fitz/colorspace.c @@ -2889,15 +2889,16 @@ void fz_init_cached_color_converter(fz_context *ctx, fz_color_converter *cc, fz_ int n = ss->n; fz_cached_color_converter *cached = fz_malloc_struct(ctx, fz_cached_color_converter); + cc->opaque = cached; + cc->convert = fz_cached_color_convert; + cc->ds = ds; + cc->ss = ss; + cc->is = is; + fz_try(ctx) { fz_find_color_converter(ctx, &cached->base, is, ds, ss, params); cached->hash = fz_new_hash_table(ctx, 256, n * sizeof(float), -1, fz_free); - cc->convert = fz_cached_color_convert; - cc->ds = ds; - cc->ss = ss; - cc->is = is; - cc->opaque = cached; } fz_catch(ctx) { |