Browse Source

TgaImporter: use a better error message for RLE decoding failures.

pull/605/head
Vladimír Vondruš 4 years ago
parent
commit
acc23724c1
  1. 2
      src/MagnumPlugins/TgaImporter/Test/TgaImporterTest.cpp
  2. 2
      src/MagnumPlugins/TgaImporter/TgaImporter.cpp

2
src/MagnumPlugins/TgaImporter/Test/TgaImporterTest.cpp

@ -434,7 +434,7 @@ void TgaImporterTest::rleTooLarge() {
std::ostringstream out;
Error redirectError{&out};
CORRADE_VERIFY(!importer->image2D(0));
CORRADE_COMPARE(out.str(), "Trade::TgaImporter::image2D(): RLE data larger than advertised Vector(2, 3) pixels at byte 28\n");
CORRADE_COMPARE(out.str(), "Trade::TgaImporter::image2D(): RLE data at byte 28 contains 4 pixels but only 3 left to decode\n");
}
void TgaImporterTest::openMemory() {

2
src/MagnumPlugins/TgaImporter/TgaImporter.cpp

@ -167,7 +167,7 @@ Containers::Optional<ImageData2D> TgaImporter::doImage2D(UnsignedInt, UnsignedIn
return Containers::NullOpt;
}
if(count*pixelSize > dstPixels.size()) {
Error{} << "Trade::TgaImporter::image2D(): RLE data larger than advertised" << size << "pixels at byte" << (srcPixels.data() - _in.data());
Error{} << "Trade::TgaImporter::image2D(): RLE data at byte" << (srcPixels.data() - _in.data()) << "contains" << count << "pixels but only" << dstPixels.size()/pixelSize << "left to decode";
return Containers::NullOpt;
}

Loading…
Cancel
Save