summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-04-09 21:25:44 +0000
committerirfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-04-09 21:25:44 +0000
commit7d4e20a6b28e89622042e38311793b64c5b129bf (patch)
tree5adcde2d5a8dd8a9f7cc0a0317afc5404a864915
parentff149a6d654c59572bc23d991ee4fea3f34ce28e (diff)
downloadATCD-7d4e20a6b28e89622042e38311793b64c5b129bf.tar.gz
*** empty log message ***
-rw-r--r--TAO/ChangeLog-99c21
-rw-r--r--TAO/tao/POA.cpp15
2 files changed, 20 insertions, 16 deletions
diff --git a/TAO/ChangeLog-99c b/TAO/ChangeLog-99c
index 8f9f1f3401d..825b932f755 100644
--- a/TAO/ChangeLog-99c
+++ b/TAO/ChangeLog-99c
@@ -1,12 +1,19 @@
+Fri Apr 09 16:19:12 1999 Irfan Pyarali <irfan@cs.wustl.edu>
+
+ * tao/POA.cpp (create_object_key and parse_key): We must include
+ the persistent bit even when the POA_NO_TIMESTAMP is defined.
+ Otherwise, we won't know which POA map to search. Thanks to Russ
+ Noseworthy for reporting this.
+
Fri Apr 9 15:20:10 1999 Alexander Babu Arulanthu <alex@cs.wustl.edu>
- * TAO_IDL/be/be_visitor_interface/interface_ss.cpp (visit_interface):
- * tao/Servant_Base.h (TAO_ServantBase):
- * tao/Server_Request.i (operation):
- * tao/Operation_Table.h (TAO_Operation_Table):
- * tao/Servant_Base.cpp:
- * tao/Server_Request.cpp (retval_):
- * tao/Operation_Table.cpp (TAO_Dynamic_Hash_OpTable):
+ * TAO_IDL/be/be_visitor_interface/interface_ss.cpp (visit_interface):
+ * tao/Servant_Base.h (TAO_ServantBase):
+ * tao/Server_Request.i (operation):
+ * tao/Operation_Table.h (TAO_Operation_Table):
+ * tao/Servant_Base.cpp:
+ * tao/Server_Request.cpp (retval_):
+ * tao/Operation_Table.cpp (TAO_Dynamic_Hash_OpTable):
Removed strlen calculation for the Operation Name from the critical
path. Length as it is obtained during demarshalling is stored in the
IIOP_Request object and passed to the Perfect Hash's find operation.
diff --git a/TAO/tao/POA.cpp b/TAO/tao/POA.cpp
index 39c6c7b0b6a..461263bdb12 100644
--- a/TAO/tao/POA.cpp
+++ b/TAO/tao/POA.cpp
@@ -1,5 +1,7 @@
// @(#) $Id$
+#define POA_NO_TIMESTAMP
+
// auto_ptr class
#include "ace/Auto_Ptr.h"
@@ -2232,10 +2234,6 @@ TAO_POA::parse_key (const TAO_ObjectKey &key,
// Skip past the system id indicator
starting_at += TAO_POA::system_id_key_type_length ();
- // Assume persistent key when the POA_NO_TIMESTAMP is enabled.
- is_persistent = 1;
-
-#if !defined (POA_NO_TIMESTAMP)
// Check the persistence indicator
char persistent_key_type = key_data[starting_at];
if (persistent_key_type == TAO_POA::persistent_key_char ())
@@ -2255,6 +2253,7 @@ TAO_POA::parse_key (const TAO_ObjectKey &key,
// Skip past the persistent indicator
starting_at += TAO_POA::persistent_key_type_length ();
+#if !defined (POA_NO_TIMESTAMP)
// Grab the timestamp for transient POAs.
if (!is_persistent)
{
@@ -2348,16 +2347,14 @@ TAO_POA::create_object_key (const PortableServer::ObjectId &id)
// Calculate the space required for the timestamp and the persistent
// byte.
- CORBA::ULong creation_time = 0;
+ CORBA::ULong creation_time = this->persistent_key_type_length ();
#if !defined (POA_NO_TIMESTAMP)
// Calculate the space required for the timestamp.
CORBA::ULong creation_time_length = TAO_Creation_Time::creation_time_length ();
if (!this->persistent_)
{
- creation_time = creation_time_length;
+ creation_time += creation_time_length;
}
-
- creation_time += this->persistent_key_type_length ();
#endif /* POA_NO_TIMESTAMP */
// Calculate the space required for the key.
@@ -2392,11 +2389,11 @@ TAO_POA::create_object_key (const PortableServer::ObjectId &id)
buffer[starting_at] = (CORBA::Octet) this->system_id_key_type ();
starting_at += this->system_id_key_type_length ();
-#if !defined (POA_NO_TIMESTAMP)
// Copy the persistence byte.
buffer[starting_at] = (CORBA::Octet) this->persistent_key_type ();
starting_at += this->persistent_key_type_length ();
+#if !defined (POA_NO_TIMESTAMP)
// Then copy the timestamp for transient POAs.
if (!this->persistent ())
{