From 0d65f3da1e079f096cd529ea322be2d57eb9d1a4 Mon Sep 17 00:00:00 2001 From: parsons Date: Thu, 9 Nov 2006 01:21:30 +0000 Subject: ChangeLogTag: Thu Nov 9 01:19:02 UTC 2006 Jeff Parsons --- TAO/TAO_IDL/be/be_decl.cpp | 14 ++++++++++++++ TAO/TAO_IDL/be/be_visitor_interface/interface_ss.cpp | 5 ++++- TAO/TAO_IDL/be_include/be_decl.h | 3 +++ 3 files changed, 21 insertions(+), 1 deletion(-) 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), @@ -586,6 +588,12 @@ be_decl::srv_inline_gen (void) return this->srv_inline_gen_; } +bool +be_decl::tie_skel_gen (void) +{ + return this->tie_skel_gen_; +} + bool be_decl::ccm_pre_proc_gen (void) { @@ -834,6 +842,12 @@ be_decl::srv_inline_gen (bool val) this->srv_inline_gen_ = val; } +void +be_decl::tie_skel_gen (bool val) +{ + this->tie_skel_gen_ = val; +} + void be_decl::ccm_pre_proc_gen (bool 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_; -- cgit v1.2.1