summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-01-19 20:00:54 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-01-19 20:00:54 +0000
commitf7d89481d724a5c579d24b6909152139c8bea6c3 (patch)
tree7dc3fc12d314367c743162b91aac341f81b09941
parent97f43db9e3dacb366038f91d79fdbfdaa20ee22f (diff)
downloadATCD-f7d89481d724a5c579d24b6909152139c8bea6c3.tar.gz
ChangeLogTag:Mon Jan 19 13:58:01 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
-rw-r--r--TAO/ChangeLog-98c13
-rw-r--r--TAO/TAO_IDL/be/be_interface.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface.cpp11
-rw-r--r--TAO/tao/corba.h3
-rw-r--r--TAO/tao/servant_base.h3
5 files changed, 30 insertions, 6 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c
index 9400d1c1c05..2e2081f052f 100644
--- a/TAO/ChangeLog-98c
+++ b/TAO/ChangeLog-98c
@@ -1,3 +1,16 @@
+Mon Jan 19 13:58:01 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
+
+ * TAO_IDL/be/be_visitor_interface.cpp:
+ * TAO_IDL/be/be_interface.cpp:
+ Fixed operation table initialization, also called proper
+ constructor for CORBA::Object in collocated classes.
+
+ * tao/corba.h:
+ More include reordering.
+
+ * tao/servant_base.h:
+ The operation table was not properly initialized.
+
Mon Jan 19 11:28:47 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* Merged changes from main_to_poa_merge_9 up to
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp
index 20bdc2c7a76..1d899875f31 100644
--- a/TAO/TAO_IDL/be/be_interface.cpp
+++ b/TAO/TAO_IDL/be/be_interface.cpp
@@ -822,8 +822,10 @@ int be_interface::gen_server_skeletons (void)
" (void)" << nl;
}
- *ss << "{\n";
- *ss << "}\n\n";
+ *ss << "{" << be_idt_nl
+ << "this->optable_ = &tao_" << this->flatname ()
+ << "_optable;" << be_uidt_nl
+ << "}\n\n";
// generate code for elements in the scope (e.g., operations)
if (be_scope::gen_server_skeletons () == -1)
diff --git a/TAO/TAO_IDL/be/be_visitor_interface.cpp b/TAO/TAO_IDL/be/be_visitor_interface.cpp
index 54c58267468..48df6887f26 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface.cpp
@@ -240,11 +240,15 @@ int be_visitor_collocated_ss::visit_interface (be_interface *node)
// the base class!
// I wish I never have to know why the symbol table for
// MSVC++ can get so confused ;-) (coryan)
- *ss << ": " << node->local_name () << " (stub)," << be_nl;
+ *ss << ": " << node->local_name ()
+ << " (stub, servant, CORBA::B_TRUE)," << be_nl;
#else
- *ss << ": " << node->name () << " (stub)," << be_nl;
+ *ss << ": " << node->name ()
+ << " (stub, servant, CORBA::B_TRUE)," << be_nl;
#endif /* ACE_WIN32 */
+ // @@ We should call the constructor for all base classes, since we
+ // are using multiple inheritance.
if (this->current_interface_->n_inherits () > 0)
{
for (int i = 0; i < node->n_inherits (); ++i)
@@ -268,7 +272,8 @@ int be_visitor_collocated_ss::visit_interface (be_interface *node)
}
}
- *ss << " servant_ (servant)";
+ *ss << " CORBA::Object (stub, servant, CORBA::B_TRUE)," << be_nl
+ << " servant_ (servant)";
*ss << "\n";
ss->decr_indent ();
diff --git a/TAO/tao/corba.h b/TAO/tao/corba.h
index 0ec14b0a3cf..b76d2ee11d8 100644
--- a/TAO/tao/corba.h
+++ b/TAO/tao/corba.h
@@ -86,12 +86,13 @@
// Defines CORBA namespace
#include "tao/corbacom.h"
-#include "tao/objkeyC.h"
// individual CORBA classes
#include "tao/sequence.h"
#include "tao/sequence_T.h"
+#include "tao/objkeyC.h"
+
typedef TAO_Unbounded_Sequence<CORBA::Octet> TAO_opaque;
extern CORBA::TypeCode TC_opaque;
diff --git a/TAO/tao/servant_base.h b/TAO/tao/servant_base.h
index 7e9f05d1e88..2e415c34526 100644
--- a/TAO/tao/servant_base.h
+++ b/TAO/tao/servant_base.h
@@ -1,3 +1,6 @@
+//
+// $Id$
+//
#if !defined (SERVANT_BASE_H)
#define SERVANT_BASE_H