From e23cc1c61ead0fb44a87f7849e8f973cc216dadc Mon Sep 17 00:00:00 2001 From: Armin Stebich Date: Sat, 8 Jan 2022 21:24:14 +0100 Subject: [PATCH] dwgReader::readDwgObjects() stop reading after 1st error --- src/intern/dwgreader.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/intern/dwgreader.cpp b/src/intern/dwgreader.cpp index 992ec6a..b3420f5 100644 --- a/src/intern/dwgreader.cpp +++ b/src/intern/dwgreader.cpp @@ -1167,7 +1167,6 @@ bool dwgReader::readDwgEntity(dwgBuffer *dbuf, objHandle& obj, DRW_Interface& in bool dwgReader::readDwgObjects(DRW_Interface& intfa, dwgBuffer *dbuf){ bool ret = true; - bool ret2 = true; duint32 i=0; DRW_DBG("\nentities map total size= "); DRW_DBG(ObjectMap.size()); @@ -1175,11 +1174,12 @@ bool dwgReader::readDwgObjects(DRW_Interface& intfa, dwgBuffer *dbuf){ auto itB=objObjectMap.begin(); auto itE=objObjectMap.end(); while (itB != itE){ - ret2 = readDwgObject(dbuf, itB->second, intfa); + if (ret) { + // once readDwgObject() failed, just clear the ObjectMap + ret = readDwgObject(dbuf, itB->second, intfa); + } objObjectMap.erase(itB); itB=objObjectMap.begin(); - if (ret) - ret = ret2; } if (DRW_DBGGL == DRW_dbg::Level::Debug) { for (auto it=remainingMap.begin(); it != remainingMap.end(); ++it){