]> Shamusworld >> Repos - virtualjaguar/blobdiff - src/gui/filethread.cpp
Fixed crash in FileThread where file type was known but not in the database.
[virtualjaguar] / src / gui / filethread.cpp
index 28d7389cb3156fe68e49c09019a86b275f09cb13..03519085e9111f436a234b62cee11c528d940c99 100644 (file)
@@ -21,6 +21,7 @@
 #include "crc32.h"
 #include "file.h"
 #include "filedb.h"
+//#include "memory.h"
 #include "settings.h"
 
 #define VERBOSE_LOGGING
@@ -139,15 +140,15 @@ void FileThread::HandleFile(QFileInfo fileInfo)
        uint32 index = FindCRCIndexInFileList(crc);
        delete[] buffer;
 
-       // Here we filter out files *not* in the DB (if configured that way) and
-       // BIOS files.
-       if (index == 0xFFFFFFFF)
+       // Here we filter out files that are *not* in the DB and of unknown type,
+       // and BIOS files. If desired, this can be overriden with a config option.
+       if ((index == 0xFFFFFFFF) && (fileType == JST_NONE))
        {
                // If we allow unknown software, we pass the (-1) index on, otherwise...
                if (!allowUnknownSoftware)
                        return;                                                         // CRC wasn't found, so bail...
        }
-       else if (romList[index].flags & FF_BIOS)
+       else if ((index != 0xFFFFFFFF) && romList[index].flags & FF_BIOS)
                return;
 
 //Here's a little problem. When we create the image here and pass it off to FilePicker,