diff options
author | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-07-13 04:17:22 +0000 |
---|---|---|
committer | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-07-13 04:17:22 +0000 |
commit | 70db4de69fdb5d9db0b6879c9f546094a2e2a6d8 (patch) | |
tree | 22ce0606b84cbc32ce0da9d6fb6b1a7163fd9e69 | |
parent | b5fe388c71243e393bbe2aba9639e5436dfcbe9d (diff) | |
download | ATCD-70db4de69fdb5d9db0b6879c9f546094a2e2a6d8.tar.gz |
Fixed mis-generated collocated class names bug in case of multiple inheritance.
-rw-r--r-- | TAO/TAO_IDL/be/be_interface.cpp | 7 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_interface.h | 3 |
2 files changed, 6 insertions, 4 deletions
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp index 37860f537b5..3636414d0cd 100644 --- a/TAO/TAO_IDL/be/be_interface.cpp +++ b/TAO/TAO_IDL/be/be_interface.cpp @@ -36,6 +36,7 @@ be_interface::be_interface (void) ami_handler_full_skel_name_ (0), skel_count_ (0), full_coll_name_ (0), + cached_coll_name_type_ (-1), ami_handler_full_coll_name_ (0), local_coll_name_ (0), ami_handler_local_coll_name_ (0), @@ -107,13 +108,11 @@ be_interface::~be_interface (void) void be_interface::compute_coll_name (int type) { -// @@ not thread safe. - static int cached_type = -1; - if (type == cached_type && this->full_coll_name_ != 0) + if (type == this->cached_coll_name_type_ && this->full_coll_name_ != 0) return; else { - cached_type = type; + this->cached_coll_name_type_ = type; delete this->full_coll_name_; delete this->local_coll_name_; } diff --git a/TAO/TAO_IDL/be_include/be_interface.h b/TAO/TAO_IDL/be_include/be_interface.h index e47fece8262..22d469ef9af 100644 --- a/TAO/TAO_IDL/be_include/be_interface.h +++ b/TAO/TAO_IDL/be_include/be_interface.h @@ -261,6 +261,9 @@ private: char *full_coll_name_; // Full collocated name + int cached_coll_name_type_; + // Record the type of cached collocated class prefix. + char *ami_handler_full_coll_name_; // Full collocated name of the AMI handler |