diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-01-29 08:36:21 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2005-01-29 08:36:21 +0000 |
commit | 343951ae2a68e6b0e63c93066a45e0cc37132ab9 (patch) | |
tree | ab08a881ea1d001dc127cd23b59629f23f58504e /TAO/TAO_IDL | |
parent | e65ff3653d6708a33037332b49189f5d6612d03d (diff) | |
download | ATCD-343951ae2a68e6b0e63c93066a45e0cc37132ab9.tar.gz |
ChangeLogTag: Sat Jan 29 02:31:21 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
Diffstat (limited to 'TAO/TAO_IDL')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp | 41 |
1 files changed, 26 insertions, 15 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp b/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp index 35bedc9b113..61eedb3a7cd 100644 --- a/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp +++ b/TAO/TAO_IDL/be/be_visitor_ami_pre_proc.cpp @@ -529,10 +529,14 @@ be_visitor_ami_pre_proc::create_reply_handler (be_interface *node, reply_handler->set_defined_in (s); reply_handler->gen_fwd_helper_name (); - // Now our customized valuetype is created, we have to - // add now the operations and attributes to the scope. - - if (! node->imported () && node->nmembers () > 0) + // Now our customized reply handler is created, we have to + // add the operations and attributes to the scope. + // Imported nodes get admitted here, so they can get + // the reply handler operations added, in case they are + // needed in the inheritance graph traversal for a + // child reply handler. However, no exception holder + // stuff is executed for an imported node. + if (node->nmembers () > 0) { this->elem_number_ = 0; // Initialize an iterator to iterate thru our scope. @@ -566,9 +570,12 @@ be_visitor_ami_pre_proc::create_reply_handler (be_interface *node, this->create_reply_handler_operation (get_operation, reply_handler); - this->create_excep_operation (get_operation, - reply_handler, - excep_holder); + if (!node->imported ()) + { + this->create_excep_operation (get_operation, + reply_handler, + excep_holder); + } if (!attribute->readonly ()) { @@ -577,11 +584,13 @@ be_visitor_ami_pre_proc::create_reply_handler (be_interface *node, this->create_reply_handler_operation (set_operation, reply_handler); - this->create_excep_operation (set_operation, - reply_handler, - excep_holder); + if (!node->imported ()) + { + this->create_excep_operation (set_operation, + reply_handler, + excep_holder); + } } - } else { @@ -592,9 +601,12 @@ be_visitor_ami_pre_proc::create_reply_handler (be_interface *node, this->create_reply_handler_operation (operation, reply_handler); - this->create_excep_operation (operation, - reply_handler, - excep_holder); + if (!node->imported ()) + { + this->create_excep_operation (operation, + reply_handler, + excep_holder); + } } } } // end of while loop @@ -1186,7 +1198,6 @@ be_visitor_ami_pre_proc::visit_scope (be_scope *node) } } - int elem_number = 0; // Continue until each element is visited. |