summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL
diff options
context:
space:
mode:
authorgokhale <asgokhale@users.noreply.github.com>1998-03-13 16:55:14 +0000
committergokhale <asgokhale@users.noreply.github.com>1998-03-13 16:55:14 +0000
commitde003f5b222045fb18df3a0aaedab2947d33d37c (patch)
treefdfb9a5223dde1ef4612483399f97ddaa487cfa8 /TAO/TAO_IDL
parentce20c182b557697cf6c0d191913a6d14b1ff3566 (diff)
downloadATCD-de003f5b222045fb18df3a0aaedab2947d33d37c.tar.gz
*** empty log message ***
Diffstat (limited to 'TAO/TAO_IDL')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation.cpp28
1 files changed, 12 insertions, 16 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_operation.cpp b/TAO/TAO_IDL/be/be_visitor_operation.cpp
index f866dfe6c2d..0fdded98746 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation.cpp
@@ -2324,35 +2324,31 @@ be_visitor_operation_rettype_vardecl_ss::visit_enum (be_enum *node)
}
int
-be_visitor_operation_rettype_vardecl_ss::visit_interface (be_interface *node)
+be_visitor_operation_rettype_vardecl_ss::visit_interface (be_interface *)
{
TAO_OutStream *os = this->ctx_->stream (); // grab the out stream
- be_type *bt; // return type
-
- if (this->ctx_->alias ()) // a typedefed return type
- bt = this->ctx_->alias ();
- else
- bt = node;
os->indent ();
- *os << bt->name () << "_ptr _tao_retval = " << bt->name () << "::_nil ();\n";
+ // due to the virtual inheritance and the fact that we will be passing the
+ // address of the objref to the marshaling routine, we use the base
+ // CORBA::Object_ptr as the type for the return value even though the actual
+ // return type may be some derived class
+ *os << "CORBA::Object_ptr _tao_retval = CORBA::Object::_nil ();\n";
return 0;
}
int
be_visitor_operation_rettype_vardecl_ss::
-visit_interface_fwd (be_interface_fwd *node)
+visit_interface_fwd (be_interface_fwd *)
{
TAO_OutStream *os = this->ctx_->stream (); // grab the out stream
- be_type *bt; // return type
-
- if (this->ctx_->alias ()) // a typedefed return type
- bt = this->ctx_->alias ();
- else
- bt = node;
os->indent ();
- *os << bt->name () << "_ptr _tao_retval = " << bt->name () << "::_nil ();\n";
+ // due to the virtual inheritance and the fact that we will be passing the
+ // address of the objref to the marshaling routine, we use the base
+ // CORBA::Object_ptr as the type for the return value even though the actual
+ // return type may be some derived class
+ *os << "CORBA::Object_ptr _tao_retval = CORBA::Object::_nil ();\n";
return 0;
}