diff options
author | Bryce Harrington <b.harrington@samsung.com> | 2014-01-29 10:22:51 -0800 |
---|---|---|
committer | Bryce Harrington <bryce@osg.samsung.com> | 2014-11-06 17:12:56 -0800 |
commit | 95daa8847c2b1f1cf4456ef1c0f968d8aaab6a50 (patch) | |
tree | eb03abc90ff6b51ea101750c95dfd941991bd46e | |
parent | eed0c9f65ae908f3d725a13c2585242e2d1681c0 (diff) |
cairo-script: Error if asked to decompress with missing compression lib
This quells the following warning:
warning: enumeration value ‘LZO’ not handled in switch [-Wswitch-enum]
The LZO enum value is defined and used elsewhere, even if lzo support
isn't available.
This situation might arise if cairo scripts were generated on one system
with lzo, and then replayed on a system without it. For now simply
error out if this occurs.
Signed-off-by: Bryce Harrington <b.harrington@samsung.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | util/cairo-script/cairo-script-file.c | 8 | ||||
-rw-r--r-- | util/cairo-script/cairo-script-operators.c | 16 |
2 files changed, 12 insertions, 12 deletions
diff --git a/util/cairo-script/cairo-script-file.c b/util/cairo-script/cairo-script-file.c index 85d292c47..c962fcedd 100644 --- a/util/cairo-script/cairo-script-file.c +++ b/util/cairo-script/cairo-script-file.c @@ -176,21 +176,21 @@ csi_file_new_from_string (csi_t *ctx, status = _csi_error (CAIRO_STATUS_NO_MEMORY); break; -#if HAVE_ZLIB case ZLIB: +#if HAVE_ZLIB if (uncompress ((Bytef *) tmp_str->string, &len, (Bytef *) src->string, src->len) != Z_OK) +#endif status = _csi_error (CAIRO_STATUS_NO_MEMORY); break; -#endif -#if HAVE_LZO case LZO: +#if HAVE_LZO if (lzo2a_decompress ((lzo_bytep) src->string, src->len, (lzo_bytep) tmp_str->string, &len, NULL)) +#endif status = _csi_error (CAIRO_STATUS_NO_MEMORY); break; -#endif } if (_csi_unlikely (status)) { csi_string_free (ctx, tmp_str); diff --git a/util/cairo-script/cairo-script-operators.c b/util/cairo-script/cairo-script-operators.c index d423fe53b..fe2d47908 100644 --- a/util/cairo-script/cairo-script-operators.c +++ b/util/cairo-script/cairo-script-operators.c @@ -1769,28 +1769,28 @@ inflate_string (csi_t *ctx, csi_string_t *src) free (bytes); return NULL; -#if HAVE_ZLIB case ZLIB: +#if HAVE_ZLIB if (uncompress ((Bytef *) bytes, &len, (Bytef *) src->string, src->len) != Z_OK) +#endif { _csi_free (ctx, bytes); return NULL; } break; -#endif -#if HAVE_LZO case LZO: +#if HAVE_LZO if (lzo2a_decompress ((Bytef *) src->string, src->len, (Bytef *) bytes, &len, NULL)) +#endif { _csi_free (ctx, bytes); return NULL; } break; -#endif } bytes[len] = '\0'; @@ -2970,22 +2970,22 @@ err_decompress: cairo_surface_destroy (image); return _csi_error (CSI_STATUS_READ_ERROR); -#if HAVE_ZLIB case ZLIB: +#if HAVE_ZLIB if (uncompress ((Bytef *) data, &out, (Bytef *) s->string, s->len) != Z_OK) +#endif goto err_decompress; break; -#endif -#if HAVE_LZO case LZO: +#if HAVE_LZO if (lzo2a_decompress ((Bytef *) s->string, s->len, (Bytef *) data, &out, NULL)) +#endif goto err_decompress; break; -#endif } } else |