Subject: Patch: UCS stringbuf
From: Andrew Dunbar (hippietrail@yahoo.com)
Date: Sat Jun 02 2001 - 02:50:02 CDT
Here is my patch to fix the corrupt UT_UCSString.
Andrew Dunbar.
-- http://linguaphile.sourceforge.net
Index: src/af/util/xp/ut_stringbuf.cpp =================================================================== RCS file: /cvsroot/abi/src/af/util/xp/ut_stringbuf.cpp,v retrieving revision 1.8 diff -u -r1.8 ut_stringbuf.cpp --- src/af/util/xp/ut_stringbuf.cpp 2001/05/25 05:52:09 1.8 +++ src/af/util/xp/ut_stringbuf.cpp 2001/06/02 07:35:50 @@ -46,7 +46,7 @@ m_pEnd(m_psz + rhs.size()), m_size(rhs.capacity()) { - memcpy(m_psz, rhs.m_psz, rhs.capacity()); + memcpy(m_psz, rhs.m_psz, rhs.capacity() * sizeof(char_type)); } UT_Stringbuf::UT_Stringbuf(const char_type* sz, size_t n) @@ -78,7 +78,7 @@ if (n >= capacity()) { grow_nocopy(n); } - memcpy(m_psz, sz, n); + memcpy(m_psz, sz, n * sizeof(char_type)); m_psz[n] = 0; m_pEnd = m_psz + n; } else { @@ -97,7 +97,7 @@ } const size_t nLen = size(); grow_copy(nLen + n); - memcpy(m_psz + nLen, sz, n); + memcpy(m_psz + nLen, sz, n * sizeof(char_type)); m_psz[nLen + n] = 0; m_pEnd += n; } @@ -156,7 +156,7 @@ char_type* p = new char_type[n]; const size_t nCurSize = size(); if (m_psz) { - memcpy(p, m_psz, size() + 1); + memcpy(p, m_psz, (size() + 1) * sizeof(char_type)); delete[] m_psz; } m_psz = p; @@ -188,7 +188,7 @@ n = priv_max(n, (size_t)(nCurSize * g_rGrowBy)); char_type* p = new char_type[n]; if (m_psz) { - memcpy(p, m_psz, size() + 1); + memcpy(p, m_psz, (size() + 1) * sizeof(char_type)); delete[] m_psz; } m_psz = p; @@ -213,7 +213,7 @@ m_pEnd(m_psz + rhs.size()), m_size(rhs.capacity()) { - memcpy(m_psz, rhs.m_psz, rhs.capacity()); + memcpy(m_psz, rhs.m_psz, rhs.capacity() * sizeof(char_type)); } UT_UCS2Stringbuf::UT_UCS2Stringbuf(const char_type* sz, size_t n) @@ -221,7 +221,7 @@ m_pEnd(m_psz + n), m_size(n+1) { - memcpy(m_psz, sz, n); + memcpy(m_psz, sz, n * sizeof(char_type)); m_psz[n] = 0; } @@ -245,7 +245,7 @@ if (n >= capacity()) { grow_nocopy(n); } - memcpy(m_psz, sz, n); + memcpy(m_psz, sz, n * sizeof(char_type)); m_psz[n] = 0; m_pEnd = m_psz + n; } else { @@ -264,7 +264,7 @@ } const size_t nLen = size(); grow_copy(nLen + n); - memcpy(m_psz + nLen, sz, n); + memcpy(m_psz + nLen, sz, n * sizeof(char_type)); m_psz[nLen + n] = 0; m_pEnd += n; } @@ -319,7 +319,7 @@ char_type* p = new char_type[n]; const size_t nCurSize = size(); if (m_psz) { - memcpy(p, m_psz, size() + 1); + memcpy(p, m_psz, (size() + 1) * sizeof(char_type)); delete[] m_psz; } m_psz = p; @@ -351,7 +351,7 @@ n = priv_max(n, (size_t)(nCurSize * g_rGrowBy)); char_type* p = new char_type[n]; if (m_psz) { - memcpy(p, m_psz, size() + 1); + memcpy(p, m_psz, (size() + 1) * sizeof(char_type)); delete[] m_psz; } m_psz = p;
_________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
This archive was generated by hypermail 2b25 : Sat Jun 02 2001 - 02:48:16 CDT