Handle case where a ROM doesn't have a name in its properties entry.

This commit is contained in:
Stephen Anthony 2019-12-24 16:52:44 -03:30
parent 99872a3b35
commit 8e1791b801
2 changed files with 14 additions and 4 deletions

View File

@ -540,6 +540,10 @@ unique_ptr<Console> OSystem::openConsole(const FilesystemNode& romfile, string&
unique_ptr<Cartridge> cart =
CartDetector::create(romfile, image, size, cartmd5, type, *mySettings);
// Some properties may not have a name set; we can't leave it blank
if(props.get(PropType::Cart_Name) == EmptyString)
props.set(PropType::Cart_Name, romfile.getNameWithExt(""));
// It's possible that the cart created was from a piece of the image,
// and that the md5 (and hence the cart) has changed
if(props.get(PropType::Cart_MD5) != cartmd5)

View File

@ -121,14 +121,20 @@ bool PropertiesSet::getMD5(const string& md5, Properties& properties,
void PropertiesSet::getMD5WithInsert(const FilesystemNode& rom,
const string& md5, Properties& properties)
{
bool toInsert = false;
if(!getMD5(md5, properties))
{
properties.set(PropType::Cart_MD5, md5);
// Create a name suitable for using in properties
properties.set(PropType::Cart_Name, rom.getNameWithExt(""));
insert(properties, false);
toInsert = true;
}
if(toInsert || properties.get(PropType::Cart_Name) == EmptyString)
{
properties.set(PropType::Cart_Name, rom.getNameWithExt(""));
toInsert = true;
}
if(toInsert)
insert(properties, false);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -