Changes between Version 2 and Version 3 of Ticket #65


Ignore:
Timestamp:
Apr 25, 2007, 1:38:24 PM (13 years ago)
Author:
gregboone
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #65 – Description

    v2 v3  
    1 When the GDAL provider connection is created and Open() is called, the resulting !RefCount should be 1. With the GDAL provider the !RefCount is incremented to 3. These additional increments are caused during the Open process as the connection object is passed, via method parameters, to several internal worker objects (including !FdoRfpClassData and !FdoRfpGeoBandRaster) who in turn call !AddRef on the connection. When dealing with internal worker objects, whoose lifespan is guaranteed to be the lifespan to the connection, these types of object should only hold soft references to the connection object so that a circular dependency does not occur. The solution to this issue is to not !AddRef the connection when storing the pointer as class data.
     1When the GDAL provider connection is created and Open() is called, the resulting !RefCount should be 1. With the GDAL provider the !RefCount is incremented to 3. These additional increments are caused during the Open process as the connection object is passed, via method parameters, to several internal worker objects (including !FdoRfpClassData and !FdoRfpGeoBandRaster) who in turn call !AddRef on the connection. When dealing with internal worker objects, whoose lifespan is guaranteed to be the lifespan to the connection, these types of object should only hold soft references to the connection object so that a circular dependency does not occur. The solution to this issue is to not !AddRef the connection when storing the connection pointer as class data.