diff options
author | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-12-07 21:51:54 +0000 |
---|---|---|
committer | parsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2010-12-07 21:51:54 +0000 |
commit | 11d5cb6886e253120938518887e2f877c3ad51da (patch) | |
tree | 061991565a2672a1ef91ec3ab494dafbc1ba7361 | |
parent | 4b907c0788d7ae7266cd87c9224536840dfe1cb1 (diff) | |
download | ATCD-11d5cb6886e253120938518887e2f877c3ad51da.tar.gz |
ChangeLogTag: Tue Dec 7 21:49:36 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog | 8 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_codegen.cpp | 48 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_codegen.h | 4 |
3 files changed, 39 insertions, 21 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index 05981f79315..eec47ea62c4 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,11 @@ +Tue Dec 7 21:49:36 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu> + + * TAO_IDL/be/be_codegen.cpp: + * TAO_IDL/be_include/be_codegen.h: + + Fixed a double deletion problem when OpenDDS is the DDS + implementation and connector IDL is processed. + Tue Dec 7 20:07:32 UTC 2010 Jeff Parsons <j.parsons@vanderbilt.edu> * TAO_IDL/include/idl_global.h: diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp index e90e1e6c134..c7ef101a433 100644 --- a/TAO/TAO_IDL/be/be_codegen.cpp +++ b/TAO/TAO_IDL/be/be_codegen.cpp @@ -3395,35 +3395,20 @@ TAO_CodeGen::gen_conn_hdr_includes (void) switch (the_dds_impl) { case BE_GlobalData::NDDS: + this->gen_conn_ts_includes ( + idl_global->ciao_rti_ts_file_names ()); break; case BE_GlobalData::OPENSPLICE: - ts_files = - idl_global->ciao_spl_ts_file_names (); + this->gen_conn_ts_includes ( + idl_global->ciao_spl_ts_file_names ()); break; case BE_GlobalData::OPENDDS: - ts_files = - idl_global->ciao_oci_ts_file_names (); + this->gen_conn_ts_includes ( + idl_global->ciao_oci_ts_file_names ()); break; case BE_GlobalData::NONE: break; } - - if (ts_files.size () > 0) - { - *this->ciao_conn_header_ << be_nl; - } - - for (ACE_Unbounded_Queue_Iterator<char *> iter ( - ts_files); - iter.done () == 0; - iter.advance ()) - { - iter.next (path_tmp); - - this->gen_standard_include ( - this->ciao_conn_header_, - *path_tmp); - } } for (ACE_Unbounded_Queue<char *>::CONST_ITERATOR iiter ( @@ -3581,6 +3566,27 @@ TAO_CodeGen::make_rand_extension (char * const t) } void +TAO_CodeGen::gen_conn_ts_includes ( + ACE_Unbounded_Queue<char *> &ts_files) +{ + if (ts_files.size () > 0) + { + *this->ciao_conn_header_ << be_nl; + } + + char **tmp = 0; + + for (ACE_Unbounded_Queue_Iterator<char *> i (ts_files); + !i.done (); + i.advance ()) + { + i.next (tmp); + this->gen_standard_include (this->ciao_conn_header_, + *tmp); + } +} + +void TAO_CodeGen::destroy (void) { delete this->client_header_; diff --git a/TAO/TAO_IDL/be_include/be_codegen.h b/TAO/TAO_IDL/be_include/be_codegen.h index dad318e6a64..3f240b82ebb 100644 --- a/TAO/TAO_IDL/be_include/be_codegen.h +++ b/TAO/TAO_IDL/be_include/be_codegen.h @@ -18,6 +18,8 @@ #include "ace/Singleton.h" #include "ace/Synch_Traits.h" +#include "ace/Unbounded_Queue.h" + #include "TAO_IDL_BE_Export.h" class TAO_OutStream; @@ -430,6 +432,8 @@ private: void make_rand_extension (char * const t); + void gen_conn_ts_includes (ACE_Unbounded_Queue<char *> &ts_files); + private: /// Client header stream. TAO_OutStream *client_header_; |