diff options
author | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-11-19 06:31:57 +0000 |
---|---|---|
committer | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1998-11-19 06:31:57 +0000 |
commit | 37ca19ecbb89b2cdfbd6eda8a7664cdca9b9688f (patch) | |
tree | 937d70c7e0071f4956f236c83c2aa012d52aedc8 /ace/SString.cpp | |
parent | 668ab2b34e957a07a9bdc9db38989710888523f4 (diff) | |
download | ATCD-37ca19ecbb89b2cdfbd6eda8a7664cdca9b9688f.tar.gz |
*** empty log message ***
Diffstat (limited to 'ace/SString.cpp')
-rw-r--r-- | ace/SString.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/ace/SString.cpp b/ace/SString.cpp index 226e5ca13e4..ad68e13c610 100644 --- a/ace/SString.cpp +++ b/ace/SString.cpp @@ -899,22 +899,23 @@ ACE_WString::strstr (const ACE_USHORT16 *s1, { ACE_TRACE ("ACE_WString::strstr"); + // Original string length size_t len1 = ACE_WString::strlen (s1); + // Substring length size_t len2 = ACE_WString::strlen (s2); + // Check if the substring is longer than the string being searched. + if (len2 > len1) + return 0; + + // Go upto <len> size_t len = len1 - len2; for (size_t i = 0; i <= len; i++) { - size_t j; - - for (j = 0; j < len2; j++) - if (s1[i + j] != s2[j]) - break; - - if (j == len2) + if (ACE_OS::memcmp (s1 + i, s2, len2 * sizeof (ACE_USHORT16)) == 0) // Found a match! Return the index. - return &s1[i]; + return s1 + i; } return 0; |