summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_valuetype.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/TAO_IDL/be/be_valuetype.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_valuetype.cpp23
1 files changed, 11 insertions, 12 deletions
diff --git a/TAO/TAO_IDL/be/be_valuetype.cpp b/TAO/TAO_IDL/be/be_valuetype.cpp
index c438ea9c48b..2d088f94bba 100644
--- a/TAO/TAO_IDL/be/be_valuetype.cpp
+++ b/TAO/TAO_IDL/be/be_valuetype.cpp
@@ -69,6 +69,8 @@ be_valuetype::be_valuetype (UTL_ScopedName *n,
n_inherits_flat,
0,
abstract),
+ be_type (AST_Decl::NT_valuetype,
+ n),
AST_ValueType (n,
inherits,
n_inherits,
@@ -158,6 +160,8 @@ be_valuetype::~be_valuetype (void)
void
be_valuetype::redefine (AST_Interface *from)
{
+ be_valuetype *bv = be_valuetype::narrow_from_decl (from);
+ bv->var_out_seq_decls_gen_ = bv->var_out_seq_decls_gen_;
this->AST_ValueType::redefine (from);
}
@@ -189,18 +193,6 @@ be_valuetype::full_obv_skel_name (void)
return this->full_obv_skel_name_;
}
-int
-be_valuetype::var_out_seq_decls_gen (void) const
-{
- return this->var_out_seq_decls_gen_;
-}
-
-void
-be_valuetype::var_out_seq_decls_gen (int val)
-{
- this->var_out_seq_decls_gen_ = val;
-}
-
const char *
be_valuetype::fwd_helper_name (void) const
{
@@ -304,6 +296,11 @@ be_valuetype::gen_helper_stubs (char* ,
void
be_valuetype:: gen_var_out_seq_decls (void)
{
+ if (this->var_out_seq_decls_gen_ == 1)
+ {
+ return;
+ }
+
TAO_OutStream *os = tao_cg->client_header ();
*os << be_nl << be_nl << "// TAO_IDL - Generated from" << be_nl
@@ -325,6 +322,8 @@ be_valuetype:: gen_var_out_seq_decls (void)
<< lname << " *);" << be_nl
<< "static void tao_remove_ref (" << lname << " *);" << be_uidt_nl
<< "};";
+
+ this->var_out_seq_decls_gen_ = 1;
}
// For building the pre and postfix of private data fields.