summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_operation/operation_ih.cpp
diff options
context:
space:
mode:
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.cpp52
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;
}