[vtk-developers] Re: ReleaseDataFlag
Tim Hutton
T.Hutton at eastman.ucl.ac.uk
Wed Mar 27 05:23:35 EST 2002
Thanks Charles, that works nicely.
Just a thought, are the VTK classes tested against this problem? If I has
submitted one of my filters then it might have been a user that ran against
this problem.
Mental note to self: always check classes with GlobalDataReleaseFlagOn
before submitting.
Tim.
At 14:46 25/03/2002 -0500, Charles Law wrote:
>Try copying (ShallowCopy) the input before you use it as input to the
>transform filter.
>
>vtkPolyData *tmp = vtkPolyData::New();
>tmp->ShallowCopy(this->GetInput());
>
>...
>
>trans->SetInput(tmp);
>
>...
>
>
>At 05:16 PM 3/25/2002 +0000, Tim Hutton wrote:
>>Maybe this is more an issue for developers, apologies for the cross-posting.
>>
>>I'm confused about the ReleaseDataFlag. A couple of my own filters were
>>using a lot of memory, so I called
>>vtkDataObject::SetGlobalReleaseDataFlag(1) to try to release memory from
>>earlier in the pipeline that was no longer needed. This works
>>spectacularly for one of them, everything was fine. For the other,
>>however, I got problems because towards the end of the Execute() function
>>the data in this->GetInput() had been released and had gone! I think the
>>problem is captured in this sketch:
>>
>>void MyFilter::Execute()
>>{
>>
>>...
>>
>>this->GetInput()->GetCell(id); // fine, since data not released
>>
>>...
>>
>>vtkTransformPolyDataFilter trans
>>trans->SetInput(this->GetInput());
>>
>>...
>>
>>trans->Update();
>>
>>... // use output of trans
>>
>>this->GetInput()->GetCell(id); // ERROR! data has been released!
>>
>>}
>>
>>When trans has finished, it checks to see if it can release its data. The
>>global flag says yes, so it releases this->GetInput() which is disastrous.
>>
>>How do I stop the data being released mid-Execute? Using
>>ReleaseDataFlagOff() calls doesn't work because the global flag overrides
>>them! (see vtkDataObject::ShouldIReleaseData)
>>
>>I'm using the latest CVS of VTK4 on win2k with visualc++6.
>>
>>Thanks,
>>
>>Tim.
>>---------------------------------------------------------------------------
>>Tim Hutton, http://www.eastman.ucl.ac.uk/~dmi/MINORI
>>Research Fellow & PhD student, T.Hutton at eastman.ucl.ac.uk
>>MINORI Project, Biomedical Informatics Unit, Tel: [+44] (0)20 7915 2344
>>Eastman Dental Institute, UCL, Fax: [+44] (0)20 7915 2303
>>256 Gray's Inn Road, London WC1X 8LD, UK Mobile: [+44] (0)7748 678 832
>>---------------------------------------------------------------------------
>>This email represents the views of the sender alone and must not be
>>construed as representing the views of the Eastman Dental Institute. It
>>may contain confidential information and may be protected by law as a
>>legally privileged document and copyright work. Its content should not be
>>disclosed and it should not be given or copied to anyone other than the
>>person(s) named or referenced above. If you have received this email in
>>error, please contact the sender.
>>
>>_______________________________________________
>>vtk-developers mailing list
>>vtk-developers at public.kitware.com
>>http://public.kitware.com/mailman/listinfo/vtk-developers
>
More information about the vtk-developers
mailing list