priv->err_mgr.error_exit = &error_exit;
priv->err_mgr.emit_message = &emit_message;
+ if(setjmp(priv->err_mgr.jmp))
+ throw runtime_error("error creating jpeg decompressor: "+priv->err_mgr.message);
+
jpeg_create_decompress(&priv->jpeg);
priv->jpeg.src = &priv->src_mgr;
bool JpegLoader::detect(const string &sig)
{
- static const char jpeg_sig[] = "\xFF\xD8\xFF";
+ static const char jpeg_sig[] = { '\xFF', '\xD8', '\xFF' };
if(sig.size()<sizeof(jpeg_sig))
return false;
- return !sig.compare(0, 3, jpeg_sig);
+ return !sig.compare(0, sizeof(jpeg_sig), jpeg_sig);
}
void JpegLoader::load(Image::Data &data)