Coverity: Uncaught exception

This commit is contained in:
wmayer
2020-07-19 18:22:16 +02:00
parent f37c728a2c
commit 1a34d3da1f
4 changed files with 42 additions and 7 deletions

View File

@@ -1062,7 +1062,8 @@ void View3DInventorViewer::setupEditingRoot(SoNode *node, const Base::Matrix4D *
ViewProviderLink::updateLinks(editViewProvider);
}
void View3DInventorViewer::resetEditingRoot(bool updateLinks) {
void View3DInventorViewer::resetEditingRoot(bool updateLinks)
{
if(!editViewProvider || pcEditingRoot->getNumChildren()<=1)
return;
if(!restoreEditingRoot) {
@@ -1077,8 +1078,25 @@ void View3DInventorViewer::resetEditingRoot(bool updateLinks) {
for(int i=1,count=pcEditingRoot->getNumChildren();i<count;++i)
root->addChild(pcEditingRoot->getChild(i));
pcEditingRoot->getChildren()->truncate(1);
if(updateLinks)
ViewProviderLink::updateLinks(editViewProvider);
// handle exceptions eventually raised by ViewProviderLink
try {
if (updateLinks)
ViewProviderLink::updateLinks(editViewProvider);
}
catch (const Py::Exception& e) {
Py::Object o = Py::type(e);
if (o.isString()) {
Py::String s(o);
Base::Console().Warning("%s\n", s.as_std_string("utf-8").c_str());
}
else {
Py::String s(o.repr());
Base::Console().Warning("%s\n", s.as_std_string("utf-8").c_str());
}
// Prints message to console window if we are in interactive mode
PyErr_Print();
}
}
SoPickedPoint* View3DInventorViewer::getPointOnRay(const SbVec2s& pos, ViewProvider* vp) const