[vtkusers] Fwd: Memory leak
    Jonathan Morra 
    jonmorra at gmail.com
       
    Tue Apr 10 00:00:50 EDT 2012
    
    
  
I posted this a while ago and got no response.  Does anyone else see this
problem?  Is there more information that I can provide?
---------- Forwarded message ----------
From: Jonathan Morra <jonmorra at gmail.com>
Date: Tue, Mar 27, 2012 at 8:10 AM
Subject: Memory leak
To: VTK Mailing List <vtkusers at vtk.org>
I posted this problem before, but got no response.  I've slightly modified
my test program to illustrate the problem more clearly.  Specifically, when
I run the below code on Windows 7 compiled with MSVC 2008 in 32 bit with Qt
4.7.4 and VTK pulled from git master on March 5, 2012, I get a pretty
pronounced memory leak.  As I mouse over the image, then memory in the
Windows Task Manager climbs.  If I comment out the imageViewer->Render();
line then the memory stays constants.
Can someone please
1.  Verify that they see this on their machine as well
2.  Provide a way to fix it.
Thanks
#include <QtGui/QApplication>
#include <QMainWindow>
 #include <QVTKWidget2.h>
#include <vtkImageViewer2.h>
#include <vtkImageData.h>
#include <vtkPointData.h>
#include <vtkGenericOpenGLRenderWindow.h>
 class MyQVTKWidget2 : public QVTKWidget2 {
public:
    MyQVTKWidget2 (vtkImageViewer2 *imageViewer, QWidget *parent = 0)
: QVTKWidget2(parent) {
        this->imageViewer = imageViewer;
    }
     virtual ~MyQVTKWidget2() {
        imageViewer->Delete();
    }
     void mouseMoveEvent(QMouseEvent *) {
        for (int i=0; i<1000; ++i) {
            // Comment out these lines to see the memory stay constant
            imageViewer->Render();
        }
    }
 private:
    vtkImageViewer2 *imageViewer;
};
 int main(int argc, char *argv[]) {
    QApplication a(argc, argv);
     vtkImageData *imageData = vtkImageData::New();
    imageData->SetExtent(0, 100, 0, 100, 0, 100);
    imageData->SetOrigin(0, 0, 0);
    imageData->SetSpacing(1, 1, 1);
    imageData->AllocateScalars();
    imageData->GetPointData()->GetScalars()->FillComponent(0, 0);
     vtkImageViewer2 *imageViewer = vtkImageViewer2::New();
    imageViewer->SetInput(imageData);
     MyQVTKWidget2 *widget = new MyQVTKWidget2(imageViewer);
    imageViewer->SetRenderWindow(widget->GetRenderWindow());
     QMainWindow mainWindow;
    mainWindow.setGeometry(200, 200, 300, 300);
    mainWindow.setCentralWidget(widget);
    mainWindow.show();
     imageData->Delete();
    return a.exec();
}
Here is the Qt .pro file as well if it helps
#-------------------------------------------------
#
# Project created by QtCreator 2012-02-24T13:30:58
#
#-------------------------------------------------
 QT       += core opengl gui
 TARGET = QVTKWidget2Test
CONFIG   += console
CONFIG   -= app_bundle
 TEMPLATE = app
 SOURCES += main.cpp
 LIBS    += -L../../vtk/lib -lvtkCommon -lvtksys -lQVTK\
 -lvtkViews -lvtkWidgets -lvtkInfovis -lvtkRendering -lvtkGraphics
-lvtkImaging -lvtkIO -lvtkFiltering\
 -lvtklibxml2 -lvtkDICOMParser -lvtkpng -lvtkpng -lvtktiff -lvtkzlib
-lvtkjpeg -lvtkalglib -lvtkexpat\
 -lvtkverdict -lvtkmetaio -lvtkNetCDF -lvtksqlite -lvtkexoIIc
-lvtkftgl -lvtkfreetype -lvtkHybrid\
 -lvtkVolumeRendering
 INCLUDEPATH += ../vtk/include
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20120409/b1212011/attachment.htm>
    
    
More information about the vtkusers
mailing list