]> OCCT Git - occt-copy.git/commitdiff
0027871: VIS - Possible memory leak in viewers in virtual windows mode CR27871_1
authorkgv <kgv@opencascade.com>
Sun, 3 Mar 2019 07:58:41 +0000 (10:58 +0300)
committerkgv <kgv@opencascade.com>
Sun, 3 Mar 2019 08:02:42 +0000 (11:02 +0300)
Disable vtkTimerLog within test checking for memory leaks.

adm/genproj.tcl
src/IVtkDraw/IVtkDraw.cxx
src/TKIVtkDraw/EXTERNLIB
tests/v3d/ivtk/bug27567

index 9039a5a2a10d769609708de27be8a984d03967d1..dd3309eec094871389cc1829172d52c962982e8d 100644 (file)
@@ -1411,7 +1411,7 @@ proc osutils:vtkCsf {{theOS ""}} {
     }
   }
 
-  set aLibArray [list vtkCommonCore vtkCommonDataModel vtkCommonExecutionModel vtkCommonMath vtkCommonTransforms vtkRenderingCore \
+  set aLibArray [list vtkCommonCore vtkCommonSystem vtkCommonDataModel vtkCommonExecutionModel vtkCommonMath vtkCommonTransforms vtkRenderingCore \
                       vtkRenderingOpenGL  vtkFiltersGeneral vtkIOCore vtkIOImage vtkImagingCore vtkInteractionStyle]
 
   # Additional suffices for the libraries
index 18ccdb92d8f902d9c15ff81da125c70af9edca72..148259958f7ad4ca47dcb22ba197f0d5629a8e38 100644 (file)
 #include <IVtkDraw_HighlightAndSelectionPipeline.hxx>
 #include <IVtkDraw_Interactor.hxx>
 
-// prevent disabling some MSVC warning messages by VTK headers 
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable: 4244)
-#endif
+// prevent disabling some MSVC warning messages by VTK headers
+#include <Standard_WarningsDisable.hxx>
 #include <vtkAlgorithmOutput.h>
 #include <vtkAppendPolyData.h>
 #include <vtkBMPWriter.h>
 #include <vtkRenderWindowInteractor.h>
 #include <vtkSmartPointer.h>
 #include <vtkTIFFWriter.h>
+#include <vtkTimerLog.h>
 #include <vtkWindowToImageFilter.h>
 #ifndef _WIN32
 #include <X11/X.h>
 #include <X11/Xutil.h>
 #include <tk.h>
 #endif
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
+#include <Standard_WarningsRestore.hxx>
 
 // workaround name conflicts with OCCT methods (in class TopoDS_Shape for example)
 #ifdef Convex
@@ -407,6 +403,37 @@ static Standard_Integer VtkInit (Draw_Interpretor& ,
   return 0;
 }
 
+//================================================================
+// Function : VtkTimerLog
+// Purpose  :
+//================================================================
+static Standard_Integer VtkTimerLog (Draw_Interpretor& ,
+                                    Standard_Integer theNbArgs,
+                                    const char** theArgVec)
+{
+  TCollection_AsciiString aVal;
+  if (theNbArgs == 2)
+  {
+    aVal = theArgVec[1];
+    aVal.LowerCase();
+  }
+  if (aVal == "1"
+   || aVal == "on")
+  {
+    vtkTimerLog::LoggingOn();
+  }
+  else if (aVal == "0"
+        || aVal == "off")
+  {
+    vtkTimerLog::LoggingOff();
+  }
+  else
+  {
+    std::cout << "Syntax error: wrong arguments\n";
+    return 1;
+  }
+  return 0;
+}
 
 //================================================================
 // Function : CreateActor
@@ -1169,6 +1196,11 @@ void IVtkDraw::Commands (Draw_Interpretor& theCommands)
     "\n\t\t: Creates the Vtk window",
     __FILE__, VtkInit, group);
 
+  theCommands.Add("ivtktimerlog",
+    "ivtktimerlog {on|off}\n"
+    "\n\t\t: Enables/disables VTK timer profiler",
+    __FILE__, VtkTimerLog, group);
+
   theCommands.Add("ivtkdisplay",
     "ivtkdisplay usage:\n"
     "ivtkdisplay name1 name2 ..."
@@ -1232,7 +1264,6 @@ void IVtkDraw::Commands (Draw_Interpretor& theCommands)
     __FILE__, VtkBackgroundColor, group);
 }
 
-
 //================================================================
 // Function : Factory
 // Purpose  : 
index bf40a7d8522925c93ec925ce218c616c1ab663fe..8d8f57e78aad22314812a37e6fc80cad4ec30caf 100644 (file)
@@ -22,3 +22,4 @@ vtkImagingCore
 vtkInteractionStyle
 vtkRenderingOpenGL
 vtkRenderingFreeTypeOpenGL
+vtkCommonSystem
index 5d110ad008d250088d0e126a61a472fa7235764e..7177acb87bfcf085d6ce405626e3e493a5dc3128 100644 (file)
@@ -1,66 +1,47 @@
-puts "For OCC27871: Possible memory leak in viewers in virtual windows mode"
-puts "For OCC27871: Use 120 kb tolerance for checktrend because of leak on Linux in virtual windows mode"
 puts "============"
-puts "OCC27567"
+puts "0027567: Visualization - possible memory leaks due to use of plain pointers in IVTK"
 puts "============"
 puts ""
-#######################################################################
-# Visualization - possible memory leaks due to use of plain pointers 
-# in IVTK
-#######################################################################
 
-ivtkinit
+psphere s 10 15 80
+box b1 5 5 -5
+box b2 -5 -5 -5
+ptorus t 10 3
+compound s b1 b2 t cc
+unset s
+unset b1
+unset b2
+unset t
+incmesh cc 1
 
+ivtkinit
+ivtktimerlog 0
 dlog off
-# Create i_max number of shapes
-set i_max 15
-
-set listmem {}
-for {set i 1} {${i} <= ${i_max}} {incr i} {
-    
-  psphere s 10 15 80
-  box box1 5 5 -5
-  box box2 -5 -5 -5
-  ptorus t 10 3
-
-  compound s box1 box2 t b$i
-
-  unset s
-  unset box1
-  unset box2
-  unset t
-  
 
-  # Display the j-th shape
-  ivtkdisplay b$i
-               
-  # Display shaded
+proc doCycle { theI } {
+  # display shaded/wireframe
+  ivtkdisplay cc
   ivtksetdispmode 1
-               
-  # Display wired
   ivtksetdispmode 0
-               
-  # Select the shape
+
+  # select/unselect
   ivtkselect 200 200
-               
-  # Deselect the shape
   ivtkselect 0 0
-               
-  # Highlight the shape 
+
+  # highlight/unhighlight
   ivtkmoveto 200 200
-                 
-  # Unhighlight the shape 
   ivtkmoveto 50 50
-                 
-  # Hide the shape
-  ivtkerase b$i
-    
-  # Remove the shape presentation from memory
-  ivtkremove b$i
-  
-  unset b$i
 
-  lappend listmem [meminfo h]
-  checktrend $listmem 0 120000 "Memory leak detected"
+  # hide and remove
+  ivtkerase  cc
+  ivtkremove cc
 }
 
+# Create i_max number of shapes
+set i_max 15
+set listmem {}
+for {set i 1} {${i} <= ${i_max}} {incr i} {
+  doCycle $i
+  lappend listmem [meminfo h]
+  checktrend $listmem 0 1 "Memory leak detected"
+}