Salome HOME
Fix for Bug11695
authorapo <apo@opencascade.com>
Mon, 27 Mar 2006 12:23:15 +0000 (12:23 +0000)
committerapo <apo@opencascade.com>
Mon, 27 Mar 2006 12:23:15 +0000 (12:23 +0000)
   Porting problem: CRASH after import of "ex15_cyl2geometry.py".

src/SMESHGUI/SMESHGUI_Swig.cxx

index ad5b2c816ed9c299efb18a2d17a4c337a480054a..203db32dea120255788b7ab71f96c47c3b796388 100644 (file)
@@ -609,8 +609,32 @@ SMESH_Swig::SetName(const char* theEntry,
 void SMESH_Swig::SetMeshIcon(const char* theMeshEntry, 
                             const bool theIsComputed)
 {
-  SALOMEDS::SObject_var aMeshSO = myStudy->FindObjectID(theMeshEntry);
-  if(!aMeshSO->_is_nil())
-    if(_PTR(SObject) aMesh = ClientFactory::SObject(aMeshSO))
-      SMESH::ModifiedMesh(aMesh,theIsComputed);
+  class TEvent: public SALOME_Event
+  {
+    SALOMEDS::Study_var myStudy;
+    std::string myMeshEntry;
+    bool myIsComputed;
+  public:
+    TEvent(const SALOMEDS::Study_var& theStudy,
+          const std::string& theMeshEntry,
+          const bool theIsComputed):
+      myStudy(theStudy),
+      myMeshEntry(theMeshEntry),
+      myIsComputed(theIsComputed)
+    {}
+
+    virtual
+    void
+    Execute()
+    {
+      SALOMEDS::SObject_var aMeshSO = myStudy->FindObjectID(myMeshEntry.c_str());
+      if(!aMeshSO->_is_nil())
+       if(_PTR(SObject) aMesh = ClientFactory::SObject(aMeshSO))
+         SMESH::ModifiedMesh(aMesh,myIsComputed);
+    }
+  };
+
+  ProcessVoidEvent(new TEvent(myStudy,
+                             theMeshEntry,
+                             theIsComputed));
 }