summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordoccvs <doccvs@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-08-23 05:32:10 +0000
committerdoccvs <doccvs@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2001-08-23 05:32:10 +0000
commitb3578d2410e59d9e1d4ae38a76667aa8f0c0424c (patch)
tree23ee4756e8989cedc9ce507921c497ba49117942
parent85208e3c81c201438f030726b3cb2f06a261101c (diff)
downloadATCD-b3578d2410e59d9e1d4ae38a76667aa8f0c0424c.tar.gz
ChangeLogTag: Thu Augr 23 07:27:04 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r--ChangeLog7
-rw-r--r--ChangeLogs/ChangeLog-02a7
-rw-r--r--ChangeLogs/ChangeLog-03a7
-rw-r--r--ace/SString.h6
-rw-r--r--ace/SString.i24
-rw-r--r--tests/SString_Test.cpp8
6 files changed, 53 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 3fccfb32aab..38f552da747 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Thu Aug 23 07:30:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SString.{h,i}: Added clear() method to the ACE_CString and
+ ACE_WString so that it is possible to clear a string in just one
+ call
+ * tests/SString_Test.cpp: Extended to test clear() method
+
Wed Aug 22 15:30:05 2001 Carlos O'Ryan <coryan@uci.edu>
* bin/auto_compile:
diff --git a/ChangeLogs/ChangeLog-02a b/ChangeLogs/ChangeLog-02a
index 3fccfb32aab..38f552da747 100644
--- a/ChangeLogs/ChangeLog-02a
+++ b/ChangeLogs/ChangeLog-02a
@@ -1,3 +1,10 @@
+Thu Aug 23 07:30:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SString.{h,i}: Added clear() method to the ACE_CString and
+ ACE_WString so that it is possible to clear a string in just one
+ call
+ * tests/SString_Test.cpp: Extended to test clear() method
+
Wed Aug 22 15:30:05 2001 Carlos O'Ryan <coryan@uci.edu>
* bin/auto_compile:
diff --git a/ChangeLogs/ChangeLog-03a b/ChangeLogs/ChangeLog-03a
index 3fccfb32aab..38f552da747 100644
--- a/ChangeLogs/ChangeLog-03a
+++ b/ChangeLogs/ChangeLog-03a
@@ -1,3 +1,10 @@
+Thu Aug 23 07:30:12 2001 Johnny Willemsen <jwillemsen@remedy.nl>
+
+ * ace/SString.{h,i}: Added clear() method to the ACE_CString and
+ ACE_WString so that it is possible to clear a string in just one
+ call
+ * tests/SString_Test.cpp: Extended to test clear() method
+
Wed Aug 22 15:30:05 2001 Carlos O'Ryan <coryan@uci.edu>
* bin/auto_compile:
diff --git a/ace/SString.h b/ace/SString.h
index 75e3d44f3c7..52368e450bb 100644
--- a/ace/SString.h
+++ b/ace/SString.h
@@ -116,6 +116,9 @@ public:
size_t len,
int release);
+ /// Clear this string. Memory is _not_ freed is <release> is 0.
+ void clear (int release = 0);
+
/**
* Return a substring given an offset and length, if length == -1
* use rest of str. Return empty substring if offset or
@@ -289,6 +292,9 @@ public:
void set (const ACE_WSTRING_TYPE *s,
size_t len);
+ /// Clear this string.
+ void clear ();
+
/**
* Return a substring given an offset and length, if length == -1
* use rest of str return empty substring if offset or offset/length
diff --git a/ace/SString.i b/ace/SString.i
index c5c42f254c5..37ed646789d 100644
--- a/ace/SString.i
+++ b/ace/SString.i
@@ -126,6 +126,12 @@ ACE_CString::set (const char *s, int release)
this->set (s, length, release);
}
+ACE_INLINE void
+ACE_CString::clear (int release)
+{
+ this->set(0, 0, release);
+}
+
ACE_INLINE size_t
ACE_CString::length (void) const
{
@@ -506,6 +512,12 @@ operator+ (const ACE_WString &s,
return temp;
}
+ACE_INLINE void
+ACE_WString::clear()
+{
+ this->set (0,0);
+}
+
ACE_INLINE ACE_WString
ACE_WString::substr (size_t offset,
ssize_t length) const
@@ -521,11 +533,11 @@ ACE_WString::rep (void) const
ACE_TRACE ("ACE_WString::rep");
ACE_WSTRING_TYPE *t;
- ACE_NEW_RETURN (t,
- ACE_WSTRING_TYPE[this->len_ + 1],
+ ACE_NEW_RETURN (t,
+ ACE_WSTRING_TYPE[this->len_ + 1],
0);
- ACE_OS::memcpy (t,
- this->rep_,
+ ACE_OS::memcpy (t,
+ this->rep_,
this->len_ * sizeof (ACE_WSTRING_TYPE));
// 0 terminate
@@ -694,9 +706,9 @@ ACE_WString::buffer_size(void) const
ACE_INLINE u_long
ACE_WString::hash (void) const
{
- return ACE::hash_pjw
+ return ACE::hash_pjw
(ACE_reinterpret_cast (char *, ACE_const_cast (ACE_WSTRING_TYPE *,
- this->rep_)),
+ this->rep_)),
this->len_ * sizeof (ACE_WSTRING_TYPE));
}
diff --git a/tests/SString_Test.cpp b/tests/SString_Test.cpp
index fe73d352f50..181c472b6b8 100644
--- a/tests/SString_Test.cpp
+++ b/tests/SString_Test.cpp
@@ -139,6 +139,10 @@ main (int, ACE_TCHAR *[])
ACE_ASSERT (s4 == s6);
s6 = s5;
ACE_ASSERT (s6 == s5);
+
+ // Clear
+ s0.clear();
+ ACE_ASSERT (s0.length() == 0);
}
{
@@ -195,6 +199,10 @@ main (int, ACE_TCHAR *[])
ACE_ASSERT (s4 == s6);
s6 = s5;
ACE_ASSERT (s6 == s5);
+
+ // Clear
+ s0.clear();
+ ACE_ASSERT (s0.length() == 0);
}
ACE_END_TEST;