GNOME Bugzilla – Bug 115493
generated everything-common.h doesn't compile
Last modified: 2004-12-22 21:47:04 UTC
The idl-compiler generates code that does not compile for the following file (everything.idl slightly modified from the version in ORBit2). Things start going astray around line 227 where a class definition is messed up: namespace test { class DerivedServer_ptr{ ::test::DerivedServer *m_target; public: DerivedServer_ptr() : m_target (0) {}; DerivedServer_ptr(::test::DerivedServer *ptr) : m_target(ptr) {}; DerivedServer_ptr &operator =(::test::DerivedServer *ptr) { m_target = ptr; return *this; } ...
Created attachment 17612 [details] everything.idl generates bad code from idl-compiler
I have fixed most of the problems with the idl-compiler that this IDL file shows up. I am down to one last problem, unions. The accessors for union members are not handled correctly for special cases. This shows up in the IDL file as an inappropriate return value for the Array accessors (it tries to return the array by value when it needs to return a slice). However, the idl-compiler also fails to generate referent (accessor function which returns an non-const reference) functions for the types for which these should exist (Struct, Union, ...). I have commented here because I am not sure how long it will be before I fix this.
Everything.idl now compiles. See changelog: 2004-04-15 Bowie Owens <bowie.owens@csiro.au>