[fdo-trac] #11: FdoPool - Clear() method illegal C++ code?

FDO trac_fdo at osgeo.org
Wed Feb 21 12:14:25 EST 2007


#11: FdoPool - Clear() method illegal C++ code?
-----------------------+----------------------------------------------------
 Reporter:  warmerdam  |         Owner:  gavincramer
     Type:  defect     |        Status:  closed     
 Priority:  major      |     Milestone:  3.3.0      
Component:  FDO API    |       Version:  3.3.0      
 Severity:  3          |    Resolution:  fixed      
 Keywords:             |   External_id:             
-----------------------+----------------------------------------------------
Changes (by gavincramer):

  * status:  new => closed
  * resolution:  => fixed

Comment:

 There were two issues in new code that newer GCC versions did not like.

 One issue was a template's method call that needs explicit reference to
 the base type.  I am not sure why this is needed, because there was no
 ambiguity.  Regardless, the fix was trivial.

 The second issue was dereferencing a pointer whose type was only forward-
 declared.  The compiler was clearly correct in flagging this.  The earlier
 compilers must have been pulling in the type through non-obvious means.
 The forward-declaration was to avoid a circular reference.  The fix was to
 delegate from the given method (an inline function in a header file) to
 one that had the right type available (not inline, slightly slower, only
 called once in object's lifetime).

 Both issues are fixed in the trunk with r2557, and in the 3.2.x branch
 with Revision 785.

-- 
Ticket URL: <http://trac.osgeo.org/fdo/ticket/11#comment:1>
FDO <http://fdo.osgeo.org/>
Feature Data Objects


More information about the fdo-trac mailing list