summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp67
1 files changed, 46 insertions, 21 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp
index ae3536245da..434e5706ed8 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp
@@ -18,21 +18,17 @@
//
// ============================================================================
-#include "idl.h"
-#include "idl_extern.h"
-#include "be.h"
-
-#include "be_visitor_sequence.h"
-
-ACE_RCSID(be_visitor_sequence, buffer_type, "$Id$")
-
+ACE_RCSID (be_visitor_sequence,
+ buffer_type,
+ "$Id$")
// ****************************************************************
// We have to generate the buffer type in the constructor
// ****************************************************************
-be_visitor_sequence_buffer_type::
-be_visitor_sequence_buffer_type (be_visitor_context *ctx)
+be_visitor_sequence_buffer_type::be_visitor_sequence_buffer_type (
+ be_visitor_context *ctx
+ )
: be_visitor_decl (ctx)
{
}
@@ -49,14 +45,23 @@ be_visitor_sequence_buffer_type::visit_node (be_type *node)
be_type *bt;
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
if (this->ctx_->state () == TAO_CodeGen::TAO_SEQUENCE_BUFFER_TYPE_CH)
- *os << bt->nested_type_name (this->ctx_->scope ());
+ {
+ *os << bt->nested_type_name (this->ctx_->scope ());
+ }
else
- *os << bt->name ();
+ {
+ *os << bt->name ();
+ }
+
return 0;
}
@@ -64,10 +69,16 @@ int
be_visitor_sequence_buffer_type::visit_predefined_type (be_predefined_type *node)
{
TAO_OutStream *os = this->ctx_->stream ();
+
if (node->pt () == AST_PredefinedType::PT_pseudo)
- *os << node->name () << "_ptr";
+ {
+ *os << node->name () << "_ptr";
+ }
else
- *os << node->name ();
+ {
+ *os << node->name ();
+ }
+
return 0;
}
@@ -81,10 +92,16 @@ int
be_visitor_sequence_buffer_type::visit_interface (be_interface *node)
{
TAO_OutStream *os = this->ctx_->stream ();
+
if (this->ctx_->state () == TAO_CodeGen::TAO_SEQUENCE_BUFFER_TYPE_CH)
- *os << node->nested_type_name (this->ctx_->scope (), "_ptr");
+ {
+ *os << node->nested_type_name (this->ctx_->scope (), "_ptr");
+ }
else
- *os << node->name () << "_ptr";
+ {
+ *os << node->name () << "_ptr";
+ }
+
return 0;
}
@@ -92,10 +109,16 @@ int
be_visitor_sequence_buffer_type::visit_interface_fwd (be_interface_fwd *node)
{
TAO_OutStream *os = this->ctx_->stream ();
+
if (this->ctx_->state () == TAO_CodeGen::TAO_SEQUENCE_BUFFER_TYPE_CH)
- *os << node->nested_type_name (this->ctx_->scope (), "_ptr");
+ {
+ *os << node->nested_type_name (this->ctx_->scope (), "_ptr");
+ }
else
- *os << node->name () << "_ptr";
+ {
+ *os << node->name () << "_ptr";
+ }
+
return 0;
}
@@ -161,7 +184,8 @@ be_visitor_sequence_buffer_type::visit_array (be_array *node)
int
be_visitor_sequence_buffer_type::visit_typedef (be_typedef *node)
{
- this->ctx_->alias (node); // set the alias node
+ this->ctx_->alias (node);
+
if (node->primitive_base_type ()->accept (this) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
@@ -170,6 +194,7 @@ be_visitor_sequence_buffer_type::visit_typedef (be_typedef *node)
"accept on primitive type failed\n"),
-1);
}
+
this->ctx_->alias (0);
return 0;
}