[FWTools] OGRFeature memory problem?
Mike Toothaker
mtoothaker at milcord.com
Mon May 15 10:22:45 EDT 2006
> -----Original Message-----
> From: Frank Warmerdam [mailto:fwarmerdam at gmail.com] On Behalf Of Frank
> Warmerdam
> Sent: Monday, May 15, 2006 9:47 AM
> To: Mike Toothaker
> Cc: fwtools at lists.maptools.org
> Subject: Re: [FWTools] OGRFeature memory problem?
>
> Mike Toothaker wrote:
> > Hello,
> >
> >
> >
> > I will start off by apologizing for my lack of geospatial knowledge. I
> > have just started a project and I am trying
> >
> > to get caught up on the geospatial stuff as quickly as I can while
> > working with it. We are using gdal in our project
> >
> > and I have the following code(almost an exact copy paste from the gdal
> > website).
> ...
> > delete poFeature; //ß--- Error here
>
> Mike,
>
> Due to what I consider a brain-dead approach to DLLs it is common for
> microsoft applications to have distinct heaps for different DLLs. This
> means that you can't delete an object allocated in a different DLL unless
> you take great care to ensure you are using the same heap. I normally
> build
> everything with /MD so all modules use the same MSVCRT.DLL for memory
> allocation (hence one heap).
>
> However, that is not always possible. To be on the safe side you should
> instead delete your features using:
>
> OGRFeature::DestroyFeature( poFeature );
>
> Should you find yourself needing to dynamically create feature I would
> suggest using:
>
> poFeature = OGRFeature::CreateFeature( poFeatureDefn );
>
> Some other classes and factories have similar static
> constructor/descructor
> methods that should be used in preference to direct use of new and delete.
>
> I *hate* this issue.
>
> If you let me know exactly where what web page on the web site you worked
> from, I'll change it to use OGRFeature::DestroyFeature().
>
> PS. This sort of GDAL specific development issue might be better posed on
> gdal-dev. I generally think of the FWTools list as a place for FWTools
> specific packaging issues, and high level user questions.
>
> Best regards,
> --
> ---------------------------------------+----------------------------------
> ----
> I set the clouds in motion - turn up | Frank Warmerdam,
> warmerdam at pobox.com
> light and sound - activate the windows | http://pobox.com/~warmerdam
> and watch the world go round - Rush | President OSGF, http://osgeo.org
Thanks,
I am still getting the same problem even using the
OGRFeature::CreateFeature and OGRFeature::DestroyFeature. Maybe it is
something new that has been introduced in VC++ 2005(although now that I have
typed that, I remember that we have the same problem with the product being
built on VS2003).
The webpage I worked off of is: http://www.gdal.org/ogr/ogr_apitut.html in
the "Writing to OGR" section.
I will also look into posting the problem to the gdal-dev mailing list. If
I understand correctly I am also building with the /MD(in the project
properties it says "Multithreaded DLL"?) and no luck there either. :-(
Thanks,
Mike
More information about the FWTools
mailing list