[Orbit-python-list] Problem with parsing of recursive structs in IDL
Status: Inactive
Brought to you by:
tack
From: Brad C. <cha...@ar...> - 2001-08-29 01:55:38
|
Hello all; I ran into a problem with CORBA._load_idl() getting a Bus error and core dump while parsing an IDL that I work on. After a bit of narrowing down, it appears as if this is a minimal IDL that will cause the problem: struct RecursiveStruct { sequence <RecursiveStruct> inner_struct; }; interface ProblemInterface { attribute RecursiveStruct problem_item; }; The idea is that you have a struct that has, as one of its member, a list of itself (in the IDL that I'm working on this is used to descend a sort of "tree" of items). When a struct like this is present inside an interface, it will cause the problem. gdb gives a trace that looks like: #0 0x283c6dba in _thread_leave_cancellation_point () from /usr/lib/libc_r.so.4 #1 0x283c705d in _thread_leave_cancellation_point () from /usr/lib/libc_r.so.4 #2 0x283c7781 in malloc () from /usr/lib/libc_r.so.4 #3 0x283bf179 in calloc () from /usr/lib/libc_r.so.4 #4 0x28461dc7 in g_malloc0 () from /usr/local/lib/libglib12.so.3 #5 0x283ff8be in alloc_typecode () at idl.c:917 #6 0x28400538 in get_struct_typecode (tree=0x81af5c0) at idl.c:1172 #7 0x28401525 in get_typecode (tree=0x81af5c0) at idl.c:1431 #8 0x283ffe59 in get_ident_typecode (tree=0x81af240) at idl.c:1043 #9 0x28401565 in get_typecode (tree=0x81af240) at idl.c:1439 #10 0x2840082a in get_sequence_typecode (tree=0x81af600) at idl.c:1219 #11 0x2840158d in get_typecode (tree=0x81af600) at idl.c:1445 [...] #s 5-11 will than repeat over and over again in the backtrace, seeming to indicate that orbit-python gets itself into a loop while parsing this. This error happens for me with orbit-python 0.3.0, ORBit 0.5.8, on both FreeBSD and NetBSD machines. I hope this report gives enough info for someone with a knowledge of idl.c; please let me know if you need more information (or would rather I submit this to the bug-tracker instead of sending it here). Thanks to all for orbit-python -- it has been really great to see all the new features/improvements happening on it! Brad |