]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Some memory leaks were removed
authorstv <stv@opencascade.com>
Thu, 5 Oct 2006 07:18:03 +0000 (07:18 +0000)
committerstv <stv@opencascade.com>
Thu, 5 Oct 2006 07:18:03 +0000 (07:18 +0000)
src/GLViewer/GLViewer_Object.cxx
src/GLViewer/GLViewer_Object.h
src/LightApp/LightApp_OBFilter.cxx

index cb0920108852214ac626f6387650484f307883db..65e4849a06865771e065762ac24ad1021ffda558 100644 (file)
@@ -66,17 +66,20 @@ GLViewer_Object::GLViewer_Object()
 */
 GLViewer_Object::~GLViewer_Object()
 {
-  if( myRect )
+  if ( myRect )
     delete myRect;
 
-  if( myUpdateRect )
+  if ( myUpdateRect )
     delete myUpdateRect;
 
-  if( myGLText )
+  if ( myGLText )
     delete myGLText;
 
-  if( myAspectLine )
+  if ( myAspectLine )
     delete myAspectLine;
+
+  if ( myOwner )
+    delete myOwner;
 }
 
 /*!
@@ -87,6 +90,16 @@ int GLViewer_Object::getPriority() const
     return myDrawer ? myDrawer->getPriority() : 0;
 }
 
+void GLViewer_Object::setOwner( SUIT_DataOwner* owner )
+{
+  if ( myOwner == owner )
+    return;
+
+  if ( myOwner )
+    delete myOwner;
+  myOwner = owner;
+}
+
 /*!
   \return true if object is inside rectangle
   \param theRect - rectangle
index 6ac66583e6aeef27058f04454f897567d25aa7fe..83419d465038b44a92a1a7140b81865d65128577 100644 (file)
@@ -235,7 +235,7 @@ public:
   //!\warning It is for ouv
   SUIT_DataOwner*           owner() const { return myOwner; }
   //!\warning It is for ouv
-  void                      setOwner( SUIT_DataOwner* owner ) { myOwner = owner; }
+  void                      setOwner( SUIT_DataOwner* owner );
   
   //! Adds object to group theGroup
   void                      setGroup( GLViewer_Group* theGroup );
index b157202718687b152fd1d44b51c5c67b908ef9db..252260df339642b2fc34abb16614b0473ef4b653 100644 (file)
@@ -40,7 +40,7 @@ bool LightApp_OBFilter::isOk( const SUIT_DataObject* theDataObj ) const
 {
   const LightApp_DataObject* obj = dynamic_cast<const LightApp_DataObject*>( theDataObj );
   if ( obj )
-    return mySelMgr->isOk( new LightApp_DataOwner( obj->entry() ) );
+    return mySelMgr->isOk( SUIT_DataOwnerPtr( new LightApp_DataOwner( obj->entry() ) ) );
 
   return true;
 }