summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp62
1 files changed, 56 insertions, 6 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp
index 677b50c3a22..cf497604458 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp
@@ -54,8 +54,6 @@ int be_visitor_exception_ctor::visit_exception (be_exception *node)
TAO_OutStream *os = this->ctx_->stream ();
this->ctx_->node (node);
- os->indent ();
-
if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
{
*os << node->local_name ();
@@ -194,11 +192,11 @@ int be_visitor_exception_ctor::visit_interface (be_interface *node)
if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
{
- *os << "const " << bt->nested_type_name (this->ctx_->scope (), "_ptr ");
+ *os << "const " << bt->nested_type_name (this->ctx_->scope (), "_ptr");
}
else
{
- *os << "const " << bt->name () << "_ptr ";
+ *os << "const " << bt->name () << "_ptr";
}
return 0;
@@ -220,11 +218,63 @@ int be_visitor_exception_ctor::visit_interface_fwd (be_interface_fwd *node)
if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
{
- *os << "const " << bt->nested_type_name (this->ctx_->scope (), "_ptr ");
+ *os << "const " << bt->nested_type_name (this->ctx_->scope (), "_ptr");
+ }
+ else
+ {
+ *os << "const " << bt->name () << "_ptr";
+ }
+
+ return 0;
+}
+
+int be_visitor_exception_ctor::visit_valuetype (be_valuetype *node)
+{
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_type *bt;
+
+ if (this->ctx_->alias ())
+ {
+ bt = this->ctx_->alias ();
+ }
+ else
+ {
+ bt = node;
+ }
+
+ if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
+ {
+ *os << "const " << bt->nested_type_name (this->ctx_->scope (), " *");
+ }
+ else
+ {
+ *os << "const " << bt->name () << " *";
+ }
+
+ return 0;
+}
+
+int be_visitor_exception_ctor::visit_valuetype_fwd (be_valuetype_fwd *node)
+{
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_type *bt;
+
+ if (this->ctx_->alias ())
+ {
+ bt = this->ctx_->alias ();
+ }
+ else
+ {
+ bt = node;
+ }
+
+ if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
+ {
+ *os << "const " << bt->nested_type_name (this->ctx_->scope (), " *");
}
else
{
- *os << "const " << bt->name () << "_ptr ";
+ *os << "const " << bt->name () << " *";
}
return 0;