summaryrefslogtreecommitdiff
path: root/ACE/ace/ETCL
diff options
context:
space:
mode:
authorjtc <jtc@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2008-09-16 22:04:42 +0000
committerjtc <jtc@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2008-09-16 22:04:42 +0000
commitbe80a4c7f1c3e5a99973cf4f2c1e3f7093eb3dd2 (patch)
treeb8452e7341a772127db1d9e2e1f80d33cede8a1e /ACE/ace/ETCL
parente0a2db465c08468728fa0cc1833ee040b9d22ee5 (diff)
downloadATCD-be80a4c7f1c3e5a99973cf4f2c1e3f7093eb3dd2.tar.gz
ChangeLogTag: Tue Sep 16 21:58:59 UTC 2008 J.T. Conklin <jtc@acorntoolworks.com>
Diffstat (limited to 'ACE/ace/ETCL')
-rw-r--r--ACE/ace/ETCL/ETCL_Constraint.cpp96
-rw-r--r--ACE/ace/ETCL/ETCL_Constraint.inl17
2 files changed, 23 insertions, 90 deletions
diff --git a/ACE/ace/ETCL/ETCL_Constraint.cpp b/ACE/ace/ETCL/ETCL_Constraint.cpp
index 7c9bdc0c5f7..ecdcff9f9d3 100644
--- a/ACE/ace/ETCL/ETCL_Constraint.cpp
+++ b/ACE/ace/ETCL/ETCL_Constraint.cpp
@@ -31,7 +31,7 @@ ETCL_Constraint::accept (ETCL_Constraint_Visitor * /* visitor */)
ETCL_Literal_Constraint::ETCL_Literal_Constraint (
const ETCL_Literal_Constraint & lit
)
- : ETCL_Constraint ()
+ : type_ (ACE_ETCL_UNKNOWN)
{
this->copy (lit);
}
@@ -212,38 +212,6 @@ ETCL_Literal_Constraint::operator== (const ETCL_Literal_Constraint & rhs)
return return_value;
}
-
-bool
-ETCL_Literal_Constraint::operator!= (const ETCL_Literal_Constraint & rhs)
-{
- bool return_value = false;
- Literal_Type widest_type = this->widest_type (rhs);
-
- switch (widest_type)
- {
- case ACE_ETCL_STRING:
- return_value = (ACE_OS::strcmp ((const char*) *this, (const char*) rhs) != 0);
- break;
- case ACE_ETCL_DOUBLE:
- return_value = (ACE_CDR::Double) *this != (ACE_CDR::Double) rhs;
- break;
- case ACE_ETCL_INTEGER:
- case ACE_ETCL_SIGNED:
- return_value = (ACE_CDR::Long) *this != (ACE_CDR::Long) rhs;
- break;
- case ACE_ETCL_UNSIGNED:
- return_value = (ACE_CDR::ULong) *this != (ACE_CDR::ULong) rhs;
- break;
- case ACE_ETCL_BOOLEAN:
- return_value = (ACE_CDR::Boolean) *this != (ACE_CDR::Boolean) rhs;
- break;
- default:
- break;
- }
-
- return return_value;
-}
-
bool
ETCL_Literal_Constraint::operator< (const ETCL_Literal_Constraint & rhs)
{
@@ -276,34 +244,6 @@ ETCL_Literal_Constraint::operator< (const ETCL_Literal_Constraint & rhs)
}
bool
-ETCL_Literal_Constraint::operator<= (const ETCL_Literal_Constraint & rhs)
-{
- bool return_value = false;
- Literal_Type widest_type = this->widest_type (rhs);
-
- switch (widest_type)
- {
- case ACE_ETCL_STRING:
- return_value = (ACE_OS::strcmp ((const char*) *this, (const char*) rhs) <= 0);
- break;
- case ACE_ETCL_DOUBLE:
- return_value = (ACE_CDR::Double) *this <= (ACE_CDR::Double) rhs;
- break;
- case ACE_ETCL_INTEGER:
- case ACE_ETCL_SIGNED:
- return_value = (ACE_CDR::Long) *this <= (ACE_CDR::Long) rhs;
- break;
- case ACE_ETCL_UNSIGNED:
- return_value = (ACE_CDR::ULong) *this <= (ACE_CDR::ULong) rhs;
- break;
- default:
- break;
- }
-
- return return_value;
-}
-
-bool
ETCL_Literal_Constraint::operator> (const ETCL_Literal_Constraint & rhs)
{
bool return_value = false;
@@ -331,35 +271,6 @@ ETCL_Literal_Constraint::operator> (const ETCL_Literal_Constraint & rhs)
return return_value;
}
-bool
-ETCL_Literal_Constraint::operator>= (const ETCL_Literal_Constraint & rhs)
-{
- bool return_value = false;
- Literal_Type widest_type = this->widest_type (rhs);
-
- switch (widest_type)
- {
- case ACE_ETCL_STRING:
- return_value =
- (ACE_OS::strcmp ((const char*) *this, (const char*) rhs) >= 0);
- break;
- case ACE_ETCL_DOUBLE:
- return_value = (ACE_CDR::Double) *this >= (ACE_CDR::Double) rhs;
- break;
- case ACE_ETCL_INTEGER:
- case ACE_ETCL_SIGNED:
- return_value = (ACE_CDR::Long) *this >= (ACE_CDR::Long) rhs;
- break;
- case ACE_ETCL_UNSIGNED:
- return_value = (ACE_CDR::ULong) *this >= (ACE_CDR::ULong) rhs;
- break;
- default:
- break;
- }
-
- return return_value;
-}
-
ETCL_Literal_Constraint
ETCL_Literal_Constraint::operator+ (const ETCL_Literal_Constraint & rhs)
{
@@ -513,6 +424,11 @@ ETCL_Literal_Constraint::widest_type (const ETCL_Literal_Constraint & rhs)
void
ETCL_Literal_Constraint::copy (const ETCL_Literal_Constraint &lit)
{
+ if (this->type_ == ACE_ETCL_STRING)
+ {
+ ACE::strdelete (this->op_.str_);
+ }
+
this->type_ = lit.type_;
switch (this->type_)
diff --git a/ACE/ace/ETCL/ETCL_Constraint.inl b/ACE/ace/ETCL/ETCL_Constraint.inl
index b63022252d2..e01cf43da40 100644
--- a/ACE/ace/ETCL/ETCL_Constraint.inl
+++ b/ACE/ace/ETCL/ETCL_Constraint.inl
@@ -372,3 +372,20 @@ ETCL_Preference::subexpr (void) const
return this->subexpr_;
}
+ACE_INLINE bool
+ETCL_Literal_Constraint::operator!= (const ETCL_Literal_Constraint & rhs)
+{
+ return !(*this == rhs);
+}
+
+ACE_INLINE bool
+ETCL_Literal_Constraint::operator<= (const ETCL_Literal_Constraint & rhs)
+{
+ return !(*this > rhs);
+}
+
+ACE_INLINE bool
+ETCL_Literal_Constraint::operator>= (const ETCL_Literal_Constraint & rhs)
+{
+ return !(*this < rhs);
+}