diff --git a/apps/openmw/mwgui/savegamedialog.cpp b/apps/openmw/mwgui/savegamedialog.cpp index 86295e3e82..acc220c751 100644 --- a/apps/openmw/mwgui/savegamedialog.cpp +++ b/apps/openmw/mwgui/savegamedialog.cpp @@ -430,19 +430,25 @@ namespace MWGui // Decode screenshot const std::vector& data = mCurrentSlot->mProfile.mScreenshot; - Files::IMemStream instream (&data[0], data.size()); + if (!data.size()) + { + Log(Debug::Warning) << "Selected save file '" << mCurrentSlot->mPath.filename() << "' has no savegame screenshot"; + return; + } + + Files::IMemStream instream (data.data(), data.size()); osgDB::ReaderWriter* readerwriter = osgDB::Registry::instance()->getReaderWriterForExtension("jpg"); if (!readerwriter) { - Log(Debug::Error) << "Error: Can't open savegame screenshot, no jpg readerwriter found"; + Log(Debug::Error) << "Can't open savegame screenshot, no jpg readerwriter found"; return; } osgDB::ReaderWriter::ReadResult result = readerwriter->readImage(instream); if (!result.success()) { - Log(Debug::Error) << "Error: Failed to read savegame screenshot: " << result.message() << " code " << result.status(); + Log(Debug::Error) << "Failed to read savegame screenshot: " << result.message() << " code " << result.status(); return; } diff --git a/components/esm3/savedgame.cpp b/components/esm3/savedgame.cpp index 69da8d087f..5286cda7df 100644 --- a/components/esm3/savedgame.cpp +++ b/components/esm3/savedgame.cpp @@ -50,7 +50,7 @@ void SavedGame::save (ESMWriter &esm) const esm.writeHNString ("DEPE", *iter); esm.startSubRecord("SCRN"); - esm.write(&mScreenshot[0], mScreenshot.size()); + esm.write(mScreenshot.data(), mScreenshot.size()); esm.endRecord("SCRN"); }