summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-11-09 01:21:30 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2006-11-09 01:21:30 +0000
commit0d65f3da1e079f096cd529ea322be2d57eb9d1a4 (patch)
tree7a280aa258e79add63b57c1f3a5c9a1eaf65abca
parent410aa1a773c85033309b016603f1eca458505582 (diff)
downloadATCD-0d65f3da1e079f096cd529ea322be2d57eb9d1a4.tar.gz
ChangeLogTag: Thu Nov 9 01:19:02 UTC 2006 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r--TAO/TAO_IDL/be/be_decl.cpp14
-rw-r--r--TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp5
-rw-r--r--TAO/TAO_IDL/be_include/be_decl.h3
3 files changed, 21 insertions, 1 deletions
diff --git a/TAO/TAO_IDL/be/be_decl.cpp b/TAO/TAO_IDL/be/be_decl.cpp
index 9bdf24f9d94..f930a198fd7 100644
--- a/TAO/TAO_IDL/be/be_decl.cpp
+++ b/TAO/TAO_IDL/be/be_decl.cpp
@@ -60,6 +60,7 @@ be_decl::be_decl (void)
srv_skel_gen_ (false),
impl_skel_gen_ (false),
srv_inline_gen_ (false),
+ tie_skel_gen_ (false),
cli_hdr_any_op_gen_ (false),
cli_stub_any_op_gen_ (false),
cli_hdr_cdr_op_gen_ (false),
@@ -111,6 +112,7 @@ be_decl::be_decl (AST_Decl::NodeType type,
srv_skel_gen_ (false),
impl_skel_gen_ (false),
srv_inline_gen_ (false),
+ tie_skel_gen_ (false),
cli_hdr_any_op_gen_ (false),
cli_stub_any_op_gen_ (false),
cli_hdr_cdr_op_gen_ (false),
@@ -587,6 +589,12 @@ be_decl::srv_inline_gen (void)
}
bool
+be_decl::tie_skel_gen (void)
+{
+ return this->tie_skel_gen_;
+}
+
+bool
be_decl::ccm_pre_proc_gen (void)
{
return this->ccm_pre_proc_gen_;
@@ -835,6 +843,12 @@ be_decl::srv_inline_gen (bool val)
}
void
+be_decl::tie_skel_gen (bool val)
+{
+ this->tie_skel_gen_ = val;
+}
+
+void
be_decl::ccm_pre_proc_gen (bool val)
{
this->ccm_pre_proc_gen_ = val;
diff --git a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
index ad0c7b07ad7..640c696c99e 100644
--- a/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp
@@ -734,7 +734,7 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
this->this_method (node);
- if (be_global->gen_tie_classes ())
+ if (be_global->gen_tie_classes () && !node->tie_skel_gen ())
{
// Generate the TIE class.
be_visitor_context ctx (*this->ctx_);
@@ -750,6 +750,9 @@ be_visitor_interface_ss::visit_interface (be_interface *node)
"codegen for TIE class failed\n"),
-1);
}
+
+ // AMH generation reuses this visit_interface(), hence the flag.
+ node->tie_skel_gen (true);
}
return 0;
diff --git a/TAO/TAO_IDL/be_include/be_decl.h b/TAO/TAO_IDL/be_include/be_decl.h
index dde2fa8ece3..fce714cc974 100644
--- a/TAO/TAO_IDL/be_include/be_decl.h
+++ b/TAO/TAO_IDL/be_include/be_decl.h
@@ -83,6 +83,7 @@ public:
bool srv_skel_gen (void);
bool impl_skel_gen (void);
bool srv_inline_gen (void);
+ bool tie_skel_gen (void);
bool cli_hdr_any_op_gen (void);
bool cli_stub_any_op_gen (void);
bool cli_hdr_cdr_op_gen (void);
@@ -128,6 +129,7 @@ public:
void srv_skel_gen (bool);
void impl_skel_gen (bool);
void srv_inline_gen (bool);
+ void tie_skel_gen (bool);
void cli_hdr_any_op_gen (bool);
void cli_stub_any_op_gen (bool);
void cli_hdr_cdr_op_gen (bool);
@@ -183,6 +185,7 @@ private:
bool srv_skel_gen_;
bool impl_skel_gen_;
bool srv_inline_gen_;
+ bool tie_skel_gen_;
bool cli_hdr_any_op_gen_;
bool cli_stub_any_op_gen_;
bool cli_hdr_cdr_op_gen_;