diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp | 49 |
1 files changed, 21 insertions, 28 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp index 79f75f66a28..3b067c12b9c 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/discriminant_cs.cpp @@ -18,21 +18,22 @@ // // ============================================================================ -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - +#include "be.h" #include "be_visitor_union.h" +#include "be_visitor_enum/enum_cs.h" -ACE_RCSID(be_visitor_union, discriminant_cs, "$Id$") +ACE_RCSID (be_visitor_union, + discriminant_cs, + "$Id$") // ************************************************************************* -// be_visitor_discriminant_cs - visitor for discriminant in client stubs +// Visitor for discriminant in client stubs. // ************************************************************************* -be_visitor_union_discriminant_cs::be_visitor_union_discriminant_cs -(be_visitor_context *ctx) +be_visitor_union_discriminant_cs::be_visitor_union_discriminant_cs ( + be_visitor_context *ctx + ) : be_visitor_decl (ctx) { } @@ -48,41 +49,33 @@ be_visitor_union_discriminant_cs::visit_enum (be_enum *node) this->ctx_->be_node_as_union (); // get the enclosing union backend be_type *bt; - // check if we are visiting this node via a visit to a typedef node + // Check if we are visiting this node via a visit to a typedef node. if (this->ctx_->alias ()) bt = this->ctx_->alias (); else bt = node; - if (bt->node_type () != AST_Decl::NT_typedef // not a typedef - && bt->is_child (bu)) // bt is defined inside the union + if (bt->node_type () != AST_Decl::NT_typedef + && bt->is_child (bu)) { - // instantiate a visitor context with a copy of our context. This info - // will be modified based on what type of node we are visiting + // Instantiate a visitor context with a copy of our context. This info + // will be modified based on what type of node we are visiting. be_visitor_context ctx (*this->ctx_); - ctx.node (node); // set the node to be the node being visited. The scope - // is still the same + ctx.node (node); // generate the typecode for the enum ctx.state (TAO_CodeGen::TAO_ENUM_CS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_union_discriminant_cs::" - "visit_enum - " - "Bad visitor\n" - ), -1); - } - if (node->accept (visitor) == -1) + be_visitor_enum_cs visitor (&ctx); + + if (node->accept (&visitor) == -1) { ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_union_discriminant_cs::" "visit_enum - " - "codegen failed\n" - ), -1); + "codegen failed\n"), + -1); } - delete visitor; } + return 0; } |