diff options
author | vzykov <vzykov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2011-03-02 14:56:23 +0000 |
---|---|---|
committer | vzykov <vzykov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2011-03-02 14:56:23 +0000 |
commit | 239c28bd1dd20d3051603f86730c96528faeb864 (patch) | |
tree | e01284e2ab006a86165b339854a1cb42291235ea /TAO/TAO_IDL/be/be_visitor_xplicit_pre_proc.cpp | |
parent | 75df86dda55682ddb4c4e27065a5627b6958f5e6 (diff) | |
download | ATCD-239c28bd1dd20d3051603f86730c96528faeb864.tar.gz |
Wed Mar 2 14:50:02 UTC 2011 Vladimir Zykov <vladimir.zykov@prismtech.com>
* TAO_IDL/include/ast_home.h:
* TAO_IDL/ast/ast_home.cpp:
Added a function that transfers elements from home to interface and
zeros those elements in home. This is necessary for correct cleanup.
* TAO_IDL/be/be_visitor_xplicit_pre_proc.cpp:
Added copying of exception list for operations defined in home
when it needs to create an Explicit interface. This is also for
cleanup.
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_xplicit_pre_proc.cpp')
-rw-r--r-- | TAO/TAO_IDL/be/be_visitor_xplicit_pre_proc.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_xplicit_pre_proc.cpp b/TAO/TAO_IDL/be/be_visitor_xplicit_pre_proc.cpp index 60842161acb..9e25f9a64fc 100644 --- a/TAO/TAO_IDL/be/be_visitor_xplicit_pre_proc.cpp +++ b/TAO/TAO_IDL/be/be_visitor_xplicit_pre_proc.cpp @@ -37,6 +37,7 @@ #include "utl_namelist.h" #include "utl_labellist.h" #include "utl_exprlist.h" +#include "utl_exceptlist.h" #include "fe_obv_header.h" #include "nr_extern.h" @@ -146,7 +147,11 @@ be_visitor_xplicit_pre_proc::visit_operation (be_operation *node) false), -1); - home_op->be_add_exceptions (node->exceptions ()); + UTL_ExceptList *excep_list = node->exceptions (); + if (0 != excep_list) + { + home_op->be_add_exceptions (excep_list->copy ()); + } idl_global->scopes ().top ()->add_to_scope (home_op); idl_global->scopes ().push (home_op); @@ -967,4 +972,3 @@ be_visitor_xplicit_pre_proc::xplicit_iface_rel_name (AST_Decl *d) return 0; } - |