summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-08-15 15:47:31 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-08-15 15:47:31 +0000
commit8bbcd2b2de4db1c923685cac860fd3d731ebd7d2 (patch)
tree3ac81d280f5c5dff2b7c7e2df373b1fe882c388a
parent377808cb4bd600f2ac5473e6dcede7243835a1cb (diff)
downloadATCD-8bbcd2b2de4db1c923685cac860fd3d731ebd7d2.tar.gz
ChangeLogTag: Mon Aug 15 15:45:32 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/ChangeLog13
-rw-r--r--TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp15
2 files changed, 24 insertions, 4 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index b0761b26499..4729c3c3523 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,16 @@
+Mon Aug 15 15:45:32 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ * TAO_IDL/be/be_visitor_exception/exception_ch.cpp:
+
+ Modified changes in
+
+ Fri Aug 12 22:13:15 UTC 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
+
+ slightly to omit the generation of the leading double colon
+ if a field is a typedef of a basic type. In some of these
+ cases, the ACE_NESTED_MACRO will be generated, and the
+ leading double colon would be incorrect.
+
Mon Aug 15 10:15:40 CDT 2005 Steve Totten <totten_s@ociweb.com>
Committed the following change that came originally from
diff --git a/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp b/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp
index 79bb30bf220..af2c94920ab 100644
--- a/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp
@@ -271,17 +271,24 @@ be_visitor_field_ch::visit_predefined_type (be_predefined_type *node)
{
TAO_OutStream *os = this->ctx_->stream ();
be_type *bt;
+ be_typedef *td = this->ctx_->alias ();
- if (this->ctx_->alias ())
+ if (td != 0)
{
- bt = this->ctx_->alias ();
+ bt = td;
}
else
{
bt = node;
}
-
- *os << "::";
+
+ // If we are a typedef of a basic type, ACE_NESTED_CLASS might
+ // be emitted as part of the type name, in which case the '::'
+ // would be incorrect for certain expansions of the macro.
+ if (td == 0)
+ {
+ *os << "::";
+ }
if (node->pt () == AST_PredefinedType::PT_object)
{