diff options
Diffstat (limited to 'qtools')
-rw-r--r-- | qtools/qcstring.cpp | 2 | ||||
-rw-r--r-- | qtools/qcstring.h | 1 | ||||
-rw-r--r-- | qtools/scstring.cpp | 4 |
3 files changed, 4 insertions, 3 deletions
diff --git a/qtools/qcstring.cpp b/qtools/qcstring.cpp index e0e53e4..c3aad40 100644 --- a/qtools/qcstring.cpp +++ b/qtools/qcstring.cpp @@ -466,7 +466,7 @@ QCString QCString::simplifyWhiteSpace() const QCString &QCString::insert( uint index, const char *s ) { - int len = qstrlen(s); + int len = s ? qstrlen(s) : 0; if ( len == 0 ) return *this; uint olen = length(); diff --git a/qtools/qcstring.h b/qtools/qcstring.h index 8df3bfd..ef1189a 100644 --- a/qtools/qcstring.h +++ b/qtools/qcstring.h @@ -295,6 +295,7 @@ inline void QCString::duplicate( const char *str) inline QCString &QCString::duplicate( const char *str, int) { + if (m_data==str) return *this; if (m_data) free(m_data); duplicate(str); return *this; diff --git a/qtools/scstring.cpp b/qtools/scstring.cpp index 5632f57..4a02320 100644 --- a/qtools/scstring.cpp +++ b/qtools/scstring.cpp @@ -84,6 +84,7 @@ SCString::~SCString() SCString &SCString::assign( const char *str ) { + if (m_data==str) return *this; if (m_data) free(m_data); duplicate(str); return *this; @@ -562,8 +563,7 @@ SCString &SCString::replace( const QRegExp &rx, const char *str ) QString d = QString::fromLatin1( m_data ); QString r = QString::fromLatin1( str ); d.replace( rx, r ); - operator=( d.ascii() ); - return *this; + return assign(d.ascii()); } long SCString::toLong( bool *ok ) const |