]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/jpeg/jpegloader.cpp
Fix sizeof(jpeg_sig)
[libs/gui.git] / source / graphics / jpeg / jpegloader.cpp
index 38df34848f5b7ad0e04c1574d43a94aee90d4f6c..b5801568712ed47f78f1ede3230ce351b1ea0c17 100644 (file)
@@ -91,6 +91,9 @@ JpegLoader::JpegLoader(IO::Seekable &io):
        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;
@@ -110,10 +113,10 @@ JpegLoader::~JpegLoader()
 
 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)