[fdo-trac] #415: OGRProvider refcounting is messed up
FDO
trac_fdo at osgeo.org
Sun Nov 2 11:06:24 EST 2008
#415: OGRProvider refcounting is messed up
----------------------------+-----------------------------------------------
Reporter: traianstanev | Owner: traianstanev
Type: defect | Status: new
Priority: major | Milestone:
Component: OGR Provider | Version: 3.2.0
Severity: 2 | Keywords:
External_id: |
----------------------------+-----------------------------------------------
Due to use of multiple inheritance from some FDO interfaces, the OGR
connection object suffers from a "dreaded diamond" -- there are multiple
copies of FdoIDisposable in its class layout, since the FDO interfaces do
not use virtual inheritance from FdoIDisposable (which they should).
Anyway, the OGR connection does implement a workaround for its
refcounting, in a way where only the refcount of the copy of
FdoIDisposable created for the FdoIConnection is the one that we look at
for deleting the connection. However, now that FdoIDisposable declares
AddRef and Release as virtual, we can replace the scheme by a simpler
approach, overriding those functions. It *should* also fix problems with
garbage collection when used from the managed wrappers.
--
Ticket URL: <http://trac.osgeo.org/fdo/ticket/415>
FDO <http://fdo.osgeo.org/>
Feature Data Objects
More information about the fdo-trac
mailing list