summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgokhale <asgokhale@users.noreply.github.com>1997-12-12 04:22:36 +0000
committergokhale <asgokhale@users.noreply.github.com>1997-12-12 04:22:36 +0000
commit411f4756d5d3ebade86277f71be6f54d44eac6d7 (patch)
tree02447d78b263dc59bd2b90ec04f7b5586cc6bfdd
parent3cac8522ff36813328f1e29b3d56fb5f830ca3e5 (diff)
downloadATCD-411f4756d5d3ebade86277f71be6f54d44eac6d7.tar.gz
*** empty log message ***
-rw-r--r--TAO/ChangeLog-98c10
-rw-r--r--TAO/TAO_IDL/be/be_interface.cpp50
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