Opened 16 years ago
Closed 16 years ago
#415 closed defect (fixed)
OGRProvider refcounting is messed up
Reported by: | traianstanev | Owned by: | traianstanev |
---|---|---|---|
Priority: | major | Milestone: | 3.4.0 |
Component: | OGR Provider | Version: | 3.2.0 |
Severity: | 2 | Keywords: | |
Cc: | External ID: |
Description ¶
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.
Change History (1)
comment:1 by , 16 years ago
Milestone: | → 3.4.0 |
---|---|
Resolution: | → fixed |
Status: | new → closed |