diff options
-rw-r--r-- | TAO/ChangeLog-98c | 62 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_exception.cpp | 2 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_state_argument.cpp | 6 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_state_sequence.cpp | 17 |
4 files changed, 57 insertions, 30 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c index eb286816d5b..c230d3d182a 100644 --- a/TAO/ChangeLog-98c +++ b/TAO/ChangeLog-98c @@ -1,6 +1,24 @@ +Tue Dec 23 13:36:50 1997 Aniruddha Gokhale <gokhale@mambo.cs.wustl.edu> + + * TAO_IDL/be/be_state_sequence.cpp: ACE_NESTED_CLASS must be + generated for seq elements that are scoped. We were generating + this macor only when seq elements were typedefs. However, seq + elements can also be structs or any other types that have an + enclosing scope. Thanks to Chris Gill <cdgill@cs.wustl.edu> for + the bug report. + + * TAO_IDL/be/be_exception.cpp: Whenever a _narrow fails, we were + trying to do a ACE_dynamic_cast to a 0. Instead, we now return a + 0. Again thanks to Chris Gill <cdgill@cs.wustl.edu> for + the bug report. + + * TAO_IDL/be/be_state_argument.cpp: We were ot generating a char + *& for inout string parameters. Instead only a char * was getting + generated. Fixed. + Tue Dec 23 11:45:03 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu> - * docs/releasenotes/index.html: + * docs/releasenotes/index.html: There is no need to set config=1 when compiling $TAO_ROOT/orbsvcs. @@ -10,33 +28,33 @@ Mon Dec 22 22:02:49 1997 Douglas C. Schmidt <schmidt@cs.wustl.edu> Mon Dec 22 19:08:55 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu> - * tao/corba.h: - * tao/except.cpp: - * tao/except.h: + * tao/corba.h: + * tao/except.cpp: + * tao/except.h: The TAO_TRY macros use the _narrow methods for exceptions; making the TAO_CATCH() macro fully functional. - - * orbsvcs/Dump_Schedule/Dump_Schedule.cpp: - * orbsvcs/Event_Service/Dispatching_Modules.cpp: - * orbsvcs/Event_Service/Dispatching_Modules.i: - * orbsvcs/Event_Service/Event_Channel.cpp: - * orbsvcs/Event_Service/Event_Channel.i: - * orbsvcs/Event_Service/Event_Service.cpp: - * orbsvcs/Event_Service/RT_Task.cpp: - * orbsvcs/Event_Service/ReactorTask.cpp: - * orbsvcs/Scheduling_Service/Config_Scheduler.cpp: - * orbsvcs/Scheduling_Service/Config_Scheduler.h: - * orbsvcs/Scheduling_Service/Scheduling_Service.cpp: - * orbsvcs/orbsvcs/Runtime_Scheduler.cpp: - * orbsvcs/orbsvcs/Runtime_Scheduler.h: - * orbsvcs/orbsvcs/Scheduler_Factory.cpp: - * orbsvcs/tests/Event_Latency/Event_Latency.cpp: + + * orbsvcs/Dump_Schedule/Dump_Schedule.cpp: + * orbsvcs/Event_Service/Dispatching_Modules.cpp: + * orbsvcs/Event_Service/Dispatching_Modules.i: + * orbsvcs/Event_Service/Event_Channel.cpp: + * orbsvcs/Event_Service/Event_Channel.i: + * orbsvcs/Event_Service/Event_Service.cpp: + * orbsvcs/Event_Service/RT_Task.cpp: + * orbsvcs/Event_Service/ReactorTask.cpp: + * orbsvcs/Scheduling_Service/Config_Scheduler.cpp: + * orbsvcs/Scheduling_Service/Config_Scheduler.h: + * orbsvcs/Scheduling_Service/Scheduling_Service.cpp: + * orbsvcs/orbsvcs/Runtime_Scheduler.cpp: + * orbsvcs/orbsvcs/Runtime_Scheduler.h: + * orbsvcs/orbsvcs/Scheduler_Factory.cpp: + * orbsvcs/tests/Event_Latency/Event_Latency.cpp: Changed the ACE_TRY (and friends) macros to TAO_TRY. - * orbsvcs/orbsvcs/RtecEventChannelAdmin.idl: + * orbsvcs/orbsvcs/RtecEventChannelAdmin.idl: Cleaned up some exceptions definitions. - * orbsvcs/tests/Event_Latency/Makefile: + * orbsvcs/tests/Event_Latency/Makefile: Since the schedule is not distributed (yet) by default we compile the config run, hopefully this will cause less confusion. diff --git a/TAO/TAO_IDL/be/be_exception.cpp b/TAO/TAO_IDL/be/be_exception.cpp index c68e469a21c..fa0ea4fd946 100644 --- a/TAO/TAO_IDL/be/be_exception.cpp +++ b/TAO/TAO_IDL/be/be_exception.cpp @@ -352,7 +352,7 @@ be_exception::gen_client_stubs (void) *cs << "\treturn ACE_dynamic_cast (" << this->name () << "_ptr, exc);" << nl; *cs << "else" << nl; - *cs << "\treturn ACE_dynamic_cast (" << this->name () << "_ptr, 0);\n"; + *cs << "\treturn 0;\n"; cs->decr_indent (); *cs << "}\n\n"; diff --git a/TAO/TAO_IDL/be/be_state_argument.cpp b/TAO/TAO_IDL/be/be_state_argument.cpp index 2b4b9eb1f30..c7fb3ca3a53 100644 --- a/TAO/TAO_IDL/be/be_state_argument.cpp +++ b/TAO/TAO_IDL/be/be_state_argument.cpp @@ -1132,9 +1132,9 @@ be_state_argument::gen_code (be_type *bt, be_decl *d, be_type *type) case TAO_CodeGen::TAO_ARGUMENT_CH: { if (bt->node_type () == AST_Decl::NT_typedef) - *os << bt->nested_type_name (bif); + *os << bt->nested_type_name (bif, " &"); else - *os << "char *"; + *os << "char *&"; *os << " " << arg->local_name () << ", "; } break; @@ -1144,7 +1144,7 @@ be_state_argument::gen_code (be_type *bt, be_decl *d, be_type *type) if (bt->node_type () == AST_Decl::NT_typedef) *os << bt->name (); else - *os << "char *"; + *os << "char *&"; *os << " " << arg->local_name () << ", "; } break; diff --git a/TAO/TAO_IDL/be/be_state_sequence.cpp b/TAO/TAO_IDL/be/be_state_sequence.cpp index 3d8344f0c70..8bdc66137f9 100644 --- a/TAO/TAO_IDL/be/be_state_sequence.cpp +++ b/TAO/TAO_IDL/be/be_state_sequence.cpp @@ -67,12 +67,21 @@ be_state_sequence::gen_code (be_type *bt, be_decl *d, be_type *type) // base class of the typedef ACE_ASSERT (bt->node_type () == AST_Decl::NT_typedef); - // enclosing scope in which the sequence occurs + // enclosing scope in which the sequence element type occurs be_decl *scope; - if (bt->node_type () == AST_Decl::NT_typedef) - scope = be_scope::narrow_from_scope (bt->defined_in ())->decl (); - else // no anonymous data types are allowed here + if (!bt->defined_in ()) // no outer scope for us scope = 0; + else + { + scope = be_scope::narrow_from_scope (bt->defined_in ())->decl (); + if (!scope) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_state_sequence.cpp - " + "bad scope for seq elem type\n"), + -1); + } + } // for sequences, all we do is generate the type switch (type->node_type ()) |