[Gdal-dev] GDALClose vs delete
William Lyons
wlyons at prologic-inc.com
Wed Mar 9 13:19:49 EST 2005
Frank,
Thanks, once again, for the speedy reply.
William Lyons
-----Original Message-----
From: Frank Warmerdam [mailto:fwarmerdam at gmail.com]
Sent: Wednesday, March 09, 2005 12:54 PM
To: William Lyons
Cc: gdal-dev at xserve.flids.com
Subject: Re: [Gdal-dev] GDALClose vs delete
On Wed, 9 Mar 2005 12:41:45 -0500, William Lyons
<wlyons at prologic-inc.com> wrote:
>
> Frank and List,
>
> The documentation for GDALClose() mention that it should be used for
data
> sets opened with GDALOpenShared().
>
> And that C++ delete should be used for data sets opened with
GDALOpen().
>
> But, which should be used to close datasets that are the product of a
> GDALCreate() or GDALCreateCopy() call?
William,
In theory a delete is fine for the results of GDALCreate() or
GDALCreateCopy(). However, you can also safely use
GDALClose() for all these, and I normally do. The special
issue with GDALOpenShared() is that GDALClose() first
dereferences the dataset and then deletes it if the reference
count has dropped to zero.
Also, in a windows build environment where different DLLs
have different heaps, using delete outside the DLL in which
the new took place can be very dangerous. So I also avoid
use of delete for that reason.
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 | Geospatial Programmer for Rent
More information about the Gdal-dev
mailing list