[omniORB] bug with recursive structures in omniORB3

David Scott djs@uk.research.att.com
Thu, 23 Mar 2000 15:37:49 +0000 (GMT)


On Thu, 23 Mar 2000, Markus Redeker wrote:

> Hi,
> 
> there is a bug in omniOrb v3 (CVS version, updated today). If I call omniidl
> with option -Wba and try to compile the following piece of IDL, the compiler
> gets into an infinite recursion:
> 
> [snip]

The following patch should correct the problem:

diff -u -u -r1.14.2.2 -r1.14.2.3
--- src/lib/omniORB2/omniidl_be/cxx/dynskel/typecode.py	2000/03/09 15:21:48	1.14.2.2
+++ src/lib/omniORB2/omniidl_be/cxx/dynskel/typecode.py	2000/03/23 15:31:10	1.14.2.3
@@ -509,7 +514,7 @@
                 seqType = seqType.seqType()
             # careful of recursive unions
             if isinstance(seqType, idltype.Declared) and \
-               seqType.decl() != node:
+               not(recursive(seqType.decl())):
                 seqType.decl().accept(self)
                 
         self.__override = override

The fix has been committed in the external CVS server also.

Thanks for the bug report!

-- 
  Dave Scott, Research Engineer, AT&T Research Cambridge UK