Merge pull request #8048 from ctrlaltdavid/20961

fix import of invalid JSON file failing silently
This commit is contained in:
Brad Hefta-Gaub 2016-06-12 19:42:53 -07:00 committed by GitHub
commit da28b0f3e7
2 changed files with 10 additions and 3 deletions

View file

@ -1463,6 +1463,12 @@ bool EntityTree::readFromMap(QVariantMap& map) {
QVariantList entitiesQList = map["Entities"].toList();
QScriptEngine scriptEngine;
if (entitiesQList.length() == 0) {
// Empty map or invalidly formed file.
return false;
}
bool success = true;
foreach (QVariant entityVariant, entitiesQList) {
// QVariantMap --> QScriptValue --> EntityItemProperties --> Entity
QVariantMap entityMap = entityVariant.toMap();
@ -1480,9 +1486,10 @@ bool EntityTree::readFromMap(QVariantMap& map) {
EntityItemPointer entity = addEntity(entityItemID, properties);
if (!entity) {
qCDebug(entities) << "adding Entity failed:" << entityItemID << properties.getType();
success = false;
}
}
return true;
return success;
}
void EntityTree::resetClientEditStats() {

View file

@ -1863,9 +1863,9 @@ bool Octree::readJSONFromStream(unsigned long streamLength, QDataStream& inputSt
QJsonDocument asDocument = QJsonDocument::fromJson(jsonBuffer);
QVariant asVariant = asDocument.toVariant();
QVariantMap asMap = asVariant.toMap();
readFromMap(asMap);
bool success = readFromMap(asMap);
delete[] rawData;
return true;
return success;
}
void Octree::writeToFile(const char* fileName, OctreeElementPointer element, QString persistAsFileType) {