diff options
author | François Andriot <francois.andriot@free.fr> | 2014-09-07 00:51:50 +0200 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2014-09-07 00:51:50 +0200 |
commit | e17513956503963f4d468342a5be6a0967aca97c (patch) | |
tree | 4055c4a497a5c3725705daa55822c99a6361aebe | |
parent | a28cbf4837fbb1094ff790bf53cbec2dcab94a60 (diff) | |
download | qt3-e17513956503963f4d468342a5be6a0967aca97c.tar.gz qt3-e17513956503963f4d468342a5be6a0967aca97c.zip |
Fix FTBFS on Linux specific memlock code
-rw-r--r-- | src/tools/qstring.cpp | 6 | ||||
-rw-r--r-- | src/widgets/qlineedit.cpp | 2 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/tools/qstring.cpp b/src/tools/qstring.cpp index 210848c..1c796fe 100644 --- a/src/tools/qstring.cpp +++ b/src/tools/qstring.cpp @@ -1075,9 +1075,11 @@ QStringData::~QStringData() { if ( unicode ) { delete[] ((char*)unicode); } +#if defined(Q_OS_LINUX) if ( ascii && security_unpaged ) { munlock(ascii, LINUX_MEMLOCK_LIMIT_BYTES); } +#endif if ( ascii ) { delete[] ascii; } @@ -5953,15 +5955,19 @@ const char* QString::ascii() const void QString::setSecurityUnPaged(bool lock) { if (lock != d->security_unpaged) { if (d->security_unpaged) { +#if defined(Q_OS_LINUX) if (d->ascii) { munlock(d->ascii, LINUX_MEMLOCK_LIMIT_BYTES); } +#endif d->security_unpaged = false; } else { +#if defined(Q_OS_LINUX) if (d->ascii) { mlock(d->ascii, LINUX_MEMLOCK_LIMIT_BYTES); } +#endif d->security_unpaged = true; } } diff --git a/src/widgets/qlineedit.cpp b/src/widgets/qlineedit.cpp index 2a71656..629e17e 100644 --- a/src/widgets/qlineedit.cpp +++ b/src/widgets/qlineedit.cpp @@ -461,7 +461,9 @@ QLineEdit::~QLineEdit() { if ((d->echoMode == NoEcho) || (d->echoMode == Password) || (d->echoMode == PasswordThreeStars)) { d->text.fill(QChar(0)); +#if defined(Q_OS_LINUX) munlock(d->text.d->unicode, LINUX_MEMLOCK_LIMIT_BYTES); +#endif } delete [] d->maskData; delete d; |