[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