summaryrefslogtreecommitdiffstats
path: root/src/tools/qstring.cpp
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-06-10 13:21:44 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-06-10 13:21:44 -0500
commit33e14b0aa37fd7bc47547ec187d4adde826f0da1 (patch)
tree7fc1e649d0dacfbaad54533bd97e569cfbbe138e /src/tools/qstring.cpp
parent245c821c1974c8a9bce0f2977ab5f462c87a9cba (diff)
downloadtqt3-33e14b0aa37fd7bc47547ec187d4adde826f0da1.tar.gz
tqt3-33e14b0aa37fd7bc47547ec187d4adde826f0da1.zip
Automated update from Qt3
Diffstat (limited to 'src/tools/qstring.cpp')
-rw-r--r--src/tools/qstring.cpp21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/tools/qstring.cpp b/src/tools/qstring.cpp
index 1ea356933..f7b5c233d 100644
--- a/src/tools/qstring.cpp
+++ b/src/tools/qstring.cpp
@@ -1071,13 +1071,20 @@ TQStringData::TQStringData(TQChar *u, uint l, uint m) : TQShared(),
}
TQStringData::~TQStringData() {
- if ( unicode ) delete[] ((char*)unicode);
+ if ( unicode ) {
+ delete[] ((char*)unicode);
+ }
if ( ascii && security_unpaged ) {
munlock(ascii, LINUX_MEMLOCK_LIMIT_BYTES);
}
- if ( ascii ) delete[] ascii;
+ if ( ascii ) {
+ delete[] ascii;
+ }
#ifdef QT_THREAD_SUPPORT
- if ( mutex ) delete mutex;
+ if ( mutex ) {
+ delete mutex;
+ mutex = NULL;
+ }
#endif // QT_THREAD_SUPPORT
}
@@ -1675,6 +1682,13 @@ TQString::TQString( TQStringData* dd, bool /* dummy */ ) {
TQString::~TQString()
{
+#if defined(QT_CHECK_RANGE)
+ if (!d) {
+ tqWarning( "TQString::~TQString: Double free or delete detected!" );
+ return;
+ }
+#endif
+
#ifdef QT_THREAD_SUPPORT
d->mutex->lock();
#endif // QT_THREAD_SUPPORT
@@ -1684,6 +1698,7 @@ TQString::~TQString()
d->mutex->unlock();
#endif // QT_THREAD_SUPPORT
d->deleteSelf();
+ d = NULL;
}
else {
#ifdef QT_THREAD_SUPPORT