[Insight-developers] (even more) minor consistency issues

Julien Jomier jjomier at cs.unc.edu
Sun Jan 15 15:32:42 EST 2006


Hi Zack,

Nice catch!
Feel free to check in your changes to this class.

Julien

Zachary Pincus wrote:
> Hi guys, it's me again (sorry!)
> 
> Gaetan and I have uncovered yet another little consistency issue in ITK. 
> This time it's in Insight/Code/SpatialObject/itkSpatialObject.h
> 
> Specifically, the code there to set/get the TreeNode object looks like 
> this:
>   /** Set the tree container */
>   void SetTreeNode(TreeNodeType* node) {m_TreeNode = node;}
> 
>   /** Return a raw pointer to the node container */
>   typename TreeNodeType::Pointer GetTreeNode() {return m_TreeNode;}
>   typename TreeNodeType::ConstPointer GetTreeNode() const {return 
> m_TreeNode;}
> 
> Somehow, the two get functions confuse the compiler in the nasty 
> SWIG-generated code. I honestly can't figure out what precisely the 
> problem in the SWIG rat's nest of code is, but it's a doozie.
> 
> Ignoring that for the time being, it seems that from an ITK standpoint, 
> these setters and getters have problems too! Specifically, the getters 
> don't return a raw pointer as (a) they claim to do, and (b) as proper 
> object getters created with itkGetObjectMacro do. Moreover, the MTime 
> information isn't updated by the setter, and so forth.
> 
> Unless anyone knows why these functions need to *not* use the proper 
> set/get macros, I propose to change the above block to:
>   /** Set the tree container */
>   itkSetObjectMacro(TreeNode, TreeNodeType)
> 
>   /** Get the tree container */
>   itkGetObjectMacro(TreeNode, TreeNodeType);
>   itkGetConstObjectMacro(TreeNode, TreeNodeType);
> 
> This change also results in SWIG generating proper code. Generally SWIG 
> doesn't generate broken wrapper code unless the original code has some 
> subtle errors, so I suspect that this change is for the best.
> 
> I'll follow the usual drill -- barring any objections in the next few 
> days, I'll open a bug and commit my proposed fix.
> 
> Zach
> _______________________________________________
> Insight-developers mailing list
> Insight-developers at itk.org
> http://www.itk.org/mailman/listinfo/insight-developers
> 



More information about the Insight-developers mailing list