diff --git a/src/Mod/TechDraw/App/EdgeWalker.cpp b/src/Mod/TechDraw/App/EdgeWalker.cpp index 757a558fd..3db76fceb 100644 --- a/src/Mod/TechDraw/App/EdgeWalker.cpp +++ b/src/Mod/TechDraw/App/EdgeWalker.cpp @@ -155,10 +155,13 @@ ewWireList EdgeWalker::getResult() std::vector EdgeWalker::getResultWires() { + std::vector fw; ewWireList result = m_eV.getResult(); + if (result.wires.empty()) { + return fw; + } std::vector::iterator iWire = result.wires.begin(); // a WE within [WE] - std::vector fw; for (;iWire != result.wires.end(); iWire++) { std::vector::iterator iEdge = (*iWire).wedges.begin(); std::vector topoEdges; @@ -174,11 +177,14 @@ std::vector EdgeWalker::getResultWires() std::vector EdgeWalker::getResultNoDups() { + std::vector fw; ewWireList result = m_eV.getResult(); + if (result.wires.empty()) { + return fw; + } result = result.removeDuplicates(); std::vector::iterator iWire = result.wires.begin(); - std::vector fw; for (;iWire != result.wires.end(); iWire++) { std::vector::iterator iEdge = (*iWire).wedges.begin(); std::vector topoEdges; @@ -310,6 +316,9 @@ void ewWire::push_back(WalkerEdge w) ewWireList ewWireList::removeDuplicates() { ewWireList result; + if (wires.empty()) { + return result; + } result.push_back(*(wires.begin())); //save the first ewWire std::vector::iterator iWire = (wires.begin()) + 1; //starting with second for (; iWire != wires.end(); iWire++) {