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>
This commit is contained in:
Bryce Harrington 2014-01-29 10:22:51 -08:00
parent 1ce452db4c
commit 18d66c88a2
2 changed files with 12 additions and 12 deletions

View file

@ -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);

View file

@ -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