[Paraview] memory leak in writer

Andy Bauer andy.bauer at kitware.com
Fri Jul 17 10:54:41 EDT 2009


You probably know this already but in case you didn't you can turn
VTK_DEBUG_LEAKS on and that will help in finding VTK objects that don't get
deleted.

On Fri, Jul 17, 2009 at 8:47 AM, Utkarsh Ayachit <
utkarsh.ayachit at kitware.com> wrote:

> Out of curiosity, why are you writing your own wrapper? ParaView 3.6
> onwards supports writing time series for legacy vtk files.
>
> Utkarsh
>
> On Fri, Jul 17, 2009 at 7:53 AM, Natalie
> Happenhofer<nataliehapp at hotmail.com> wrote:
> > Hi!
> > I´ve written a Wrapper for the Legacy VTK files writer, so that it writes
> a
> > whole timeseries if I want it to. Lamentably, applying it, it needs more
> and
> > more memory, so I am looking for a memory leak.
> >
> > Here is the bit of code I suspect:
> >
> >  vtkInformation* inInfo = inputVector[0]->GetInformationObject(0);
> >   vtkDataObject* input = inInfo->Get(vtkDataObject::DATA_OBJECT());
> >
> >   vtkSmartPointer<vtkDataObject> inputCopy;
> >   inputCopy.TakeReference(input->NewInstance());
> >   inputCopy->ShallowCopy(input);
> >
> >   vtksys_ios::ostringstream fname;
> >   if (this->WriteAllTimeSteps)
> >     {
> >     vtkstd::string path =
> >       vtksys::SystemTools::GetFilenamePath(this->FileName);
> >     vtkstd::string fnamenoext =
> >
> vtksys::SystemTools::GetFilenameWithoutLastExtension(this->FileName);
> >     vtkstd::string ext =
> >       vtksys::SystemTools::GetFilenameLastExtension(this->FileName);
> >     if((this -> CurrentTimeIndex) < 10)  fname << path << "/" <<
> fnamenoext
> > << ".000" <<this->CurrentTimeIndex << ext;
> >     else if((this -> CurrentTimeIndex) < 100) fname << path << "/" <<
> > fnamenoext << ".00" << this -> CurrentTimeIndex << ext;
> >     else if((this -> CurrentTimeIndex) < 1000) fname << path << "/" <<
> > fnamenoext << ".0" << this -> CurrentTimeIndex << ext;
> >     else fname << path << "/" << fnamenoext << this -> CurrentTimeIndex
> <<
> > ext;
> >     }
> >   else
> >     {
> >     fname << this->FileName;
> >     }
> >
> > //Here I call the usual VTK Writer and set the input
> >
> >   vtkGenericDataObjectWriter* Writer = vtkGenericDataObjectWriter::New();
> >   Writer -> SetInput(inputCopy);
> >   Writer -> SetFileName(fname.str().c_str());
> >   if((this -> FileType) == 1) Writer -> SetFileTypeToASCII();
> >   else   Writer -> SetFileTypeToBinary();
> >
> >   Writer -> Update();
> >
> >   if (this->WriteAllTimeSteps)
> >     {
> >     this->CurrentTimeIndex++;
> >     if (this->CurrentTimeIndex == this->NumberOfTimeSteps)
> >       {
> >       // Tell the pipeline to stop looping.
> >
> > request->Remove(vtkStreamingDemandDrivenPipeline::CONTINUE_EXECUTING());
> >       this->CurrentTimeIndex = 0;
> >       }
> >     }
> >
> >   Writer -> Delete();
> >   return 1;
> >
> > Is there anything I forget to delete?
> >
> >
> > thx for answers
> > Natalie
> >
> >
> >
> > ________________________________
> > Nuevo Internet Explorer 8 ¡Es Gratis y optimizado para MSN!
> > _______________________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Please keep messages on-topic and check the ParaView Wiki at:
> > http://paraview.org/Wiki/ParaView
> >
> > Follow this link to subscribe/unsubscribe:
> > http://www.paraview.org/mailman/listinfo/paraview
> >
> >
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the ParaView Wiki at:
> http://paraview.org/Wiki/ParaView
>
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20090717/44fe7c9b/attachment.htm>


More information about the ParaView mailing list