diff options
author | doccvs <doccvs@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-08-23 05:32:10 +0000 |
---|---|---|
committer | doccvs <doccvs@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2001-08-23 05:32:10 +0000 |
commit | b3578d2410e59d9e1d4ae38a76667aa8f0c0424c (patch) | |
tree | 23ee4756e8989cedc9ce507921c497ba49117942 | |
parent | 85208e3c81c201438f030726b3cb2f06a261101c (diff) | |
download | ATCD-b3578d2410e59d9e1d4ae38a76667aa8f0c0424c.tar.gz |
ChangeLogTag: Thu Augr 23 07:27:04 2001 Johnny Willemsen <jwillemsen@remedy.nl>
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-02a | 7 | ||||
-rw-r--r-- | ChangeLogs/ChangeLog-03a | 7 | ||||
-rw-r--r-- | ace/SString.h | 6 | ||||
-rw-r--r-- | ace/SString.i | 24 | ||||
-rw-r--r-- | tests/SString_Test.cpp | 8 |
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; |