summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_xplicit_pre_proc.cpp
diff options
context:
space:
mode:
authorvzykov <vzykov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2011-03-02 14:56:23 +0000
committervzykov <vzykov@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2011-03-02 14:56:23 +0000
commit239c28bd1dd20d3051603f86730c96528faeb864 (patch)
treee01284e2ab006a86165b339854a1cb42291235ea /TAO/TAO_IDL/be/be_visitor_xplicit_pre_proc.cpp
parent75df86dda55682ddb4c4e27065a5627b6958f5e6 (diff)
downloadATCD-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.cpp8
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;
}
-