diff options
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_operation/operation_ih.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_operation/operation_ih.cpp | 52 |
1 files changed, 13 insertions, 39 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation_ih.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation_ih.cpp index 716787d0da4..4bd6682e582 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation_ih.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation_ih.cpp @@ -16,16 +16,17 @@ // // ============================================================================ -#include "idl.h" -#include "idl_extern.h" -#include "be.h" - +#include "idl.h" +#include "idl_extern.h" +#include "be.h" #include "be_visitor_operation.h" -ACE_RCSID(be_visitor_operation, operation_ih, "$Id$") +ACE_RCSID (be_visitor_operation, + operation_ih, + "$Id$") // ************************************************************ -// Operation visitor for implementation header +// Operation visitor for implementation header. // ************************************************************ be_visitor_operation_ih::be_visitor_operation_ih (be_visitor_context *ctx) @@ -40,17 +41,14 @@ be_visitor_operation_ih::~be_visitor_operation_ih (void) int be_visitor_operation_ih::visit_operation (be_operation *node) { - TAO_OutStream *os; // output stream - be_type *bt; // type node representing the return type - - os = this->ctx_->stream (); + TAO_OutStream *os = this->ctx_->stream (); this->ctx_->node (node); // save the node // every operation is declared virtual in the client code *os << "virtual "; // STEP I: generate the return type - bt = be_type::narrow_from_decl (node->return_type ()); + be_type *bt = be_type::narrow_from_decl (node->return_type ()); if (!bt) { @@ -64,20 +62,10 @@ be_visitor_operation_ih::visit_operation (be_operation *node) // grab the right visitor to generate the return type be_visitor_context ctx (*this->ctx_); ctx.state (TAO_CodeGen::TAO_OPERATION_RETTYPE_OTHERS); - be_visitor *visitor = tao_cg->make_visitor (&ctx); - - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_ih::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } + be_visitor_operation_rettype oro_visitor (&ctx); - if (bt->accept (visitor) == -1) + if (bt->accept (&oro_visitor) == -1) { - delete visitor; ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_operation_ih::" "visit_operation - " @@ -85,8 +73,6 @@ be_visitor_operation_ih::visit_operation (be_operation *node) -1); } - delete visitor; - // STEP 2: generate the operation name *os << " " << node->local_name (); @@ -94,20 +80,10 @@ be_visitor_operation_ih::visit_operation (be_operation *node) // we grab a visitor that generates the parameter listing ctx = *this->ctx_; ctx.state (TAO_CodeGen::TAO_OPERATION_ARGLIST_IH); - visitor = tao_cg->make_visitor (&ctx); - - if (!visitor) - { - ACE_ERROR_RETURN ((LM_ERROR, - "be_visitor_operation_ih::" - "visit_operation - " - "Bad visitor to return type\n"), - -1); - } + be_visitor_operation_arglist oa_visitor (&ctx); - if (node->accept (visitor) == -1) + if (node->accept (&oa_visitor) == -1) { - delete visitor; ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_operation_ih::" "visit_operation - " @@ -115,8 +91,6 @@ be_visitor_operation_ih::visit_operation (be_operation *node) -1); } - delete visitor; - return 0; } |