diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-08-29 20:09:23 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2003-08-29 20:09:23 +0000 |
commit | 165f7bad4d949fed144b70bbc414fd07decbf735 (patch) | |
tree | f3a3c8cd638bcc844ae5d9e3d72cd738b4c4096e | |
parent | e1793d558417dc28adc99c944b090cf720b5b2e3 (diff) | |
download | ATCD-165f7bad4d949fed144b70bbc414fd07decbf735.tar.gz |
ChangeLogTag: Fri Aug 29 15:05:33 2003 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog_ref | 9 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp | 4 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp | 84 |
3 files changed, 20 insertions, 77 deletions
diff --git a/TAO/ChangeLog_ref b/TAO/ChangeLog_ref index 0aeeb19d1dd..4696aff76a2 100644 --- a/TAO/ChangeLog_ref +++ b/TAO/ChangeLog_ref @@ -1,3 +1,12 @@ +Fri Aug 29 15:05:33 2003 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_visitor_interface/interface_ch.cpp: + * TAO_IDL/be/be_visitor_interface/interface_cs.cpp: + + Changed the _unchecked_narrow() methods to use dynamic_cast + instead of _tao_QueryInterface() and removed generation of + _tao_QueryInterface. + Fri Aug 29 10:55:35 2003 Balachandran Natarajan <bala@dre.vanderbilt.edu> * tao/Collocated_Invocation.cpp (TAO): diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp index 0f8d246cb53..86cfe2de528 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ch.cpp @@ -221,10 +221,6 @@ be_visitor_interface_ch::visit_interface (be_interface *node) << ");" << be_uidt_nl << be_nl; } - // The _tao_QueryInterface method. - *os << "virtual void *_tao_QueryInterface (ptrdiff_t type);" - << be_nl << be_nl; - // The _interface_repository_id method. *os << "virtual const char* _interface_repository_id (void) const;"; diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp index ea6ea04cec5..12a006e3878 100644 --- a/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_cs.cpp @@ -477,66 +477,6 @@ be_visitor_interface_cs::visit_interface (be_interface *node) *os << "}" << be_uidt << be_uidt_nl << "}" << be_nl << be_nl; - // Generating _tao_QueryInterface method. - *os << "void *" << node->full_name () - << "::_tao_QueryInterface (ptrdiff_t type)" << be_nl - << "{" << be_idt_nl - << "void *retv = 0;" << be_nl << be_nl - << "if "; - - if (node->traverse_inheritance_graph ( - be_interface::queryinterface_helper, - os - ) == -1) - { - ACE_ERROR_RETURN ((LM_ERROR, - "(%N:%l) be_visitor_interface_cs::" - "visit_interface - " - "_tao_QueryInterface method codegen failed\n"), - -1); - } - - *os << "(type == ACE_reinterpret_cast (" - << be_idt << be_idt << be_idt << be_idt << be_idt << be_idt_nl - << " ptrdiff_t," << be_nl; - - if (node->is_abstract ()) - { - *os << " &CORBA::AbstractBase"; - } - else - { - *os << " &CORBA::Object"; - } - - *os << "::_tao_class_id)" << be_uidt_nl - << " )" << be_uidt << be_uidt << be_uidt << be_uidt_nl - << "{" << be_idt_nl - << "retv =" << be_idt_nl - << "ACE_reinterpret_cast (" << be_idt << be_idt_nl - << "void *," << be_nl - << "ACE_static_cast ("; - - if (node->is_abstract ()) - { - *os << "CORBA::AbstractBase_ptr"; - } - else - { - *os << "CORBA::Object_ptr"; - } - - *os << ", this)" << be_uidt_nl - << ");" << be_uidt << be_uidt << be_uidt_nl - << "}" << be_uidt_nl << be_nl; - - *os << "if (retv != 0)" << be_idt_nl - << "{" << be_idt_nl - << "this->_add_ref ();" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "return retv;" << be_uidt_nl - << "}" << be_nl << be_nl; - *os << "const char* " << node->full_name () << "::_interface_repository_id (void) const" << be_nl @@ -759,7 +699,8 @@ be_visitor_interface_cs::gen_concrete_unchecked_narrow (be_interface *node, if (be_global->gen_smart_proxies ()) { *os << "return TAO_" << node->flat_name () - << "_PROXY_FACTORY_ADAPTER::instance ()->create_proxy (default_proxy);" + << "_PROXY_FACTORY_ADAPTER::instance ()->" + << "create_proxy (default_proxy);" << be_uidt_nl; } else @@ -775,19 +716,16 @@ be_visitor_interface_cs::gen_concrete_unchecked_narrow (be_interface *node, *os << be_idt; } - // Local & lazily evaluated _unchecked_narrow. - *os << "return" << be_idt_nl - << "ACE_reinterpret_cast (" << be_idt << be_idt_nl - << node->local_name () << "_ptr," << be_nl - << "obj->_tao_QueryInterface (" << be_idt << be_idt_nl - << "ACE_reinterpret_cast (" << be_idt << be_idt_nl - << "ptrdiff_t," << be_nl - << "&" << node->local_name () << "::_tao_class_id" << be_uidt_nl - << ")" << be_uidt << be_uidt_nl - << ")" << be_uidt << be_uidt_nl - << ");" << be_uidt << be_uidt << be_uidt << be_uidt_nl; + *os << "{" << be_idt_nl + << node->name () << "_ptr p =" << be_idt_nl + << "dynamic_cast<" << node->name () << "_ptr> (obj);" + << be_uidt_nl << be_nl + << "p->_add_ref ();" << be_nl << be_nl + << "return p;" << be_uidt_nl + << "}" << be_uidt << be_uidt; - *os << "}" << be_nl << be_nl; + *os << be_nl + << "}" << be_nl << be_nl; } void |