summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp
diff options
context:
space:
mode:
authormayur <mayur@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-07-08 18:03:49 +0000
committermayur <mayur@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-07-08 18:03:49 +0000
commita4e0e3726b5828b25c6f7acc5dde2a74ae46dc2f (patch)
tree49aeeebfe924ded64b9a2a74cc06f26a24a18a91 /TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp
parent1c3ad44b28193551d90975b16dbc28bdaa9806b7 (diff)
downloadATCD-a4e0e3726b5828b25c6f7acc5dde2a74ae46dc2f.tar.gz
Mon Jul 8 10:59:41 2002 Mayur Deshpande <mayur@ics.uci.edu>
Diffstat (limited to 'TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp')
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp33
1 files changed, 23 insertions, 10 deletions
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp
index 546bf071ad1..ec188786b49 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/arglist.cpp
@@ -95,20 +95,33 @@ be_visitor_obv_operation_arglist::visit_operation (be_operation *node)
// Generate the ACE_ENV_ARG_DECL parameter for the alternative mapping.
if (!be_global->exception_support ())
{
- // Use ACE_ENV_SINGLE_ARG_DECL or ACE_ENV_ARG_DECL depending on
- // whether the operation node has parameters.
- char const * env_decl = "ACE_ENV_ARG_DECL";
-
- if (node->argument_count() == 0)
+ /***********************************************************/
+ // If it ian an AMHExceptionHolder we are going to generate the
+ // function definition "in-place" right here. Also all
+ // AMHExceptionHolder 'raise' methods do not take any
+ // parameters. So always declare
+ // ACE_ENV_SINGLE_ARG_DECL_NOT_USED when generating argument
+ // list for AMHExceptioHolders
+ /***********************************************************/
+ if (is_amh_exception_holder (node))
{
- env_decl = "ACE_ENV_SINGLE_ARG_DECL";
+ *os << "ACE_ENV_SINGLE_ARG_DECL_NOT_USED";
}
+ /***********************************************************/
else
{
- *os << be_nl;
- }
-
- *os << env_decl;
+ // Use ACE_ENV_SINGLE_ARG_DECL or ACE_ENV_ARG_DECL depending on
+ // whether the operation node has parameters.
+
+ if (node->argument_count() == 0)
+ {
+ *os << " ACE_ENV_SINGLE_ARG_DECL";
+ }
+ else
+ {
+ *os << " ACE_ENV_ARG_DECL";
+ }
+ }
if (!amh_valuetype)
{