diff options
author | gokhale <asgokhale@users.noreply.github.com> | 1997-12-12 04:22:36 +0000 |
---|---|---|
committer | gokhale <asgokhale@users.noreply.github.com> | 1997-12-12 04:22:36 +0000 |
commit | 411f4756d5d3ebade86277f71be6f54d44eac6d7 (patch) | |
tree | 02447d78b263dc59bd2b90ec04f7b5586cc6bfdd | |
parent | 3cac8522ff36813328f1e29b3d56fb5f830ca3e5 (diff) | |
download | ATCD-411f4756d5d3ebade86277f71be6f54d44eac6d7.tar.gz |
*** empty log message ***
-rw-r--r-- | TAO/ChangeLog-98c | 10 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_interface.cpp | 50 |
2 files changed, 35 insertions, 25 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c index b6ae89a4ef9..b37d236e9fa 100644 --- a/TAO/ChangeLog-98c +++ b/TAO/ChangeLog-98c @@ -1,3 +1,13 @@ +Thu Dec 11 22:18:52 1997 Aniruddha Gokhale <gokhale@mambo.cs.wustl.edu> + + * TAO_IDL/be/be_interface.cpp: Moved the code generation for the + _var and _out classes before the actual class declaration, but + after the forward declaration. This was necessary if any elements + in the scope of the interface are defined to be of the same type + as that interface. In such a situation those elements are defined + to be of the _var type. Hence the declaration for _var and _out + must precede the class declaration. + Thu Dec 11 22:00:52 1997 Sergio Flores <sergio@tango.cs.wustl.edu> * orbsvcs/Naming_Service/Naming_Service.cpp (main): Fixed a bug diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp index eb624dd7356..f135cb92a75 100644 --- a/TAO/TAO_IDL/be/be_interface.cpp +++ b/TAO/TAO_IDL/be/be_interface.cpp @@ -160,6 +160,31 @@ int be_interface::gen_client_header (void) ch->gen_endif (); + // generate the ifdefined macro for the var type + ch->gen_ifdef_macro (this->flatname (), "_var"); + + // generate the _var declaration + if (this->gen_var_defn () == -1) + { + ACE_ERROR ((LM_ERROR, + "be_interface - error generating _var definition\n")); + return -1; + } + ch->gen_endif (); + + // generate the ifdef macro for the _out class + ch->gen_ifdef_macro (this->flatname (), "_out"); + + // generate the _out declaration - ORBOS/97-05-15 pg 16-20 spec + if (this->gen_out_defn () == -1) + { + ACE_ERROR ((LM_ERROR, + "be_interface - error generating _var definition\n")); + return -1; + } + // generate the endif macro + ch->gen_endif (); + ch->gen_ifdef_macro (this->flatname ()); // now generate the class definition @@ -241,31 +266,6 @@ int be_interface::gen_client_header (void) *ch << "};\n\n"; ch->gen_endif (); - // generate the ifdefined macro for the var type - ch->gen_ifdef_macro (this->flatname (), "_var"); - - // generate the _var declaration - if (this->gen_var_defn () == -1) - { - ACE_ERROR ((LM_ERROR, - "be_interface - error generating _var definition\n")); - return -1; - } - ch->gen_endif (); - - // generate the ifdef macro for the _out class - ch->gen_ifdef_macro (this->flatname (), "_out"); - - // generate the _out declaration - ORBOS/97-05-15 pg 16-20 spec - if (this->gen_out_defn () == -1) - { - ACE_ERROR ((LM_ERROR, - "be_interface - error generating _var definition\n")); - return -1; - } - // generate the endif macro - ch->gen_endif (); - // generate the typecode decl. If we are in the outermost scope, our typecode // decl is extern |