diff options
author | gokhale <asgokhale@users.noreply.github.com> | 1998-03-13 16:55:14 +0000 |
---|---|---|
committer | gokhale <asgokhale@users.noreply.github.com> | 1998-03-13 16:55:14 +0000 |
commit | de003f5b222045fb18df3a0aaedab2947d33d37c (patch) | |
tree | fdfb9a5223dde1ef4612483399f97ddaa487cfa8 /TAO/TAO_IDL | |
parent | ce20c182b557697cf6c0d191913a6d14b1ff3566 (diff) | |
download | ATCD-de003f5b222045fb18df3a0aaedab2947d33d37c.tar.gz |
*** empty log message ***
Diffstat (limited to 'TAO/TAO_IDL')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_operation.cpp | 28 |
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; } |