summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2010-10-25 05:41:56 +0000
committerJohnny Willemsen <jwillemsen@remedy.nl>2010-10-25 05:41:56 +0000
commitdea20439a1353910739273b91baed9685e8d14c8 (patch)
tree46416799552dc61926453dae1b2e86e0ad70635f
parent9ce7d500302c80984f21304856f24410125df501 (diff)
downloadATCD-dea20439a1353910739273b91baed9685e8d14c8.tar.gz
Mon Oct 25 05:37:24 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
* TAO_IDL/be/be_visitor_null_return_value.cpp: Reverted change below, this visitor seems to be used in multiple places, need to add a new one for attribute initialization
-rw-r--r--TAO/ChangeLog6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_null_return_value.cpp45
2 files changed, 46 insertions, 5 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index acc43344182..ec7bb059174 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,9 @@
+Mon Oct 25 05:37:24 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * TAO_IDL/be/be_visitor_null_return_value.cpp:
+ Reverted change below, this visitor seems to be used in multiple
+ places, need to add a new one for attribute initialization
+
Sun Oct 24 11:34:00 UTC 2010 Johnny Willemsen <jwillemsen@remedy.nl>
* TAO_IDL/be/be_visitor_null_return_value.cpp:
diff --git a/TAO/TAO_IDL/be/be_visitor_null_return_value.cpp b/TAO/TAO_IDL/be/be_visitor_null_return_value.cpp
index 1fc7cba39b5..0c33b4baa46 100644
--- a/TAO/TAO_IDL/be/be_visitor_null_return_value.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_null_return_value.cpp
@@ -30,8 +30,11 @@ be_visitor_null_return_value::~be_visitor_null_return_value (void)
}
int
-be_visitor_null_return_value::visit_array (be_array *)
+be_visitor_null_return_value::visit_array (be_array *node)
{
+ os_ << "static_cast< ::" << node->full_name ()
+ << "_slice *> (0)";
+
return 0;
}
@@ -118,20 +121,42 @@ be_visitor_null_return_value::visit_predefined_type (be_predefined_type *node)
}
int
-be_visitor_null_return_value::visit_sequence (be_sequence *)
+be_visitor_null_return_value::visit_sequence (be_sequence *node)
{
+ os_ << "static_cast< ::" << node->full_name ()
+ << " *> (0)";
+
return 0;
}
int
-be_visitor_null_return_value::visit_string (be_string *)
+be_visitor_null_return_value::visit_string (be_string *node)
{
+ if (node->width () == sizeof (char))
+ {
+ os_ << "static_cast<char *> (0)";
+ }
+ else
+ {
+ os_ << "static_cast< ::CORBA::WChar *> (0)";
+ }
+
return 0;
}
int
-be_visitor_null_return_value::visit_structure (be_structure *)
+be_visitor_null_return_value::visit_structure (be_structure *node)
{
+ if (node->size_type () == AST_Type::FIXED)
+ {
+ os_ << " ::" << node->full_name () << " ()";
+ }
+ else
+ {
+ os_ << "static_cast< ::" << node->full_name ()
+ << " *> (0)";
+ }
+
return 0;
}
@@ -142,8 +167,18 @@ be_visitor_null_return_value::visit_typedef (be_typedef *node)
}
int
-be_visitor_null_return_value::visit_union (be_union *)
+be_visitor_null_return_value::visit_union (be_union *node)
{
+ if (node->size_type () == AST_Type::FIXED)
+ {
+ os_ << " ::" << node->full_name () << " ()";
+ }
+ else
+ {
+ os_ << "static_cast< ::" << node->full_name ()
+ << " *> (0)";
+ }
+
return 0;
}