diff --git a/src/Mod/Sketcher/App/SketchObject.cpp b/src/Mod/Sketcher/App/SketchObject.cpp index 05f1f399eb..37e81f3b13 100644 --- a/src/Mod/Sketcher/App/SketchObject.cpp +++ b/src/Mod/Sketcher/App/SketchObject.cpp @@ -1162,8 +1162,7 @@ int SketchObject::setConstruction(int GeoId, bool on) // in the accumulative of actions it is judged that it is worth to trigger an update here. std::unique_ptr geo(vals[GeoId]->clone()); - auto gft = GeometryFacade::getFacade(geo.get()); - gft->setConstruction(!gft->getConstruction()); + GeometryFacade::setConstruction(geo.get(), on); this->Geometry.set1Value(GeoId, std::move(geo)); solverNeedsUpdate=true; @@ -5693,6 +5692,9 @@ int SketchObject::carbonCopy(App::DocumentObject * pObj, bool construction) const std::vector< Sketcher::Constraint * > &scvals = psObj->Constraints.getValues(); + newVals.reserve(vals.size()+svals.size()); + newcVals.reserve(cvals.size()+scvals.size()); + if(psObj->ExternalGeometry.getSize()>0) { std::vector Objects = ExternalGeometry.getValues(); std::vector SubElements = ExternalGeometry.getSubValues();