summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@qt.io>2018-06-01 12:30:28 +0200
committerOswald Buddenhagen <oswald.buddenhagen@qt.io>2018-06-01 12:30:28 +0200
commitc065ea93269f16b7a5ef5ea5b253f39deff474b1 (patch)
tree7903f603840642c5dd17ee21d06d50a33ec9e3c6
parentd7b8dcc684f8808e573aabd890caf6eea307d7c8 (diff)
parent1ddfb443b686ef04cc0e28363308ce70d01f0d73 (diff)
downloadqt-creator-c065ea93269f16b7a5ef5ea5b253f39deff474b1.tar.gz
Merge branch '4.6' into 4.7
Change-Id: Ieddac600af64f3b278340c4e3555cee0f4190bcf
-rw-r--r--src/shared/proparser/qmakeparser.cpp6
-rw-r--r--src/shared/proparser/qmakeparser.h2
-rw-r--r--src/shared/proparser/qmakevfs.cpp13
-rw-r--r--src/shared/proparser/qmakevfs.h3
-rw-r--r--src/tools/wininterrupt/wininterrupt.pro9
-rw-r--r--tests/system/suite_tools/tst_codepasting/test.py4
6 files changed, 29 insertions, 8 deletions
diff --git a/src/shared/proparser/qmakeparser.cpp b/src/shared/proparser/qmakeparser.cpp
index 6b0ae22e83..8d6ef622fd 100644
--- a/src/shared/proparser/qmakeparser.cpp
+++ b/src/shared/proparser/qmakeparser.cpp
@@ -42,11 +42,17 @@ QT_BEGIN_NAMESPACE
//
///////////////////////////////////////////////////////////////////////
+ProFileCache::ProFileCache()
+{
+ QMakeVfs::ref();
+}
+
ProFileCache::~ProFileCache()
{
foreach (const Entry &ent, parsed_files)
if (ent.pro)
ent.pro->deref();
+ QMakeVfs::deref();
}
void ProFileCache::discardFile(const QString &fileName, QMakeVfs *vfs)
diff --git a/src/shared/proparser/qmakeparser.h b/src/shared/proparser/qmakeparser.h
index 0612b92262..a0c1ca17f1 100644
--- a/src/shared/proparser/qmakeparser.h
+++ b/src/shared/proparser/qmakeparser.h
@@ -197,7 +197,7 @@ Q_DECLARE_OPERATORS_FOR_FLAGS(QMakeParser::ParseFlags)
class QMAKE_EXPORT ProFileCache
{
public:
- ProFileCache() {}
+ ProFileCache();
~ProFileCache();
void discardFile(int id);
diff --git a/src/shared/proparser/qmakevfs.cpp b/src/shared/proparser/qmakevfs.cpp
index c5c5b75c74..f438978bad 100644
--- a/src/shared/proparser/qmakevfs.cpp
+++ b/src/shared/proparser/qmakevfs.cpp
@@ -49,13 +49,23 @@ QMakeVfs::QMakeVfs()
#ifndef QT_NO_TEXTCODEC
m_textCodec = 0;
#endif
+ ref();
+}
+
+QMakeVfs::~QMakeVfs()
+{
+ deref();
+}
+
+void QMakeVfs::ref()
+{
#ifdef PROEVALUATOR_THREAD_SAFE
QMutexLocker locker(&s_mutex);
#endif
++s_refCount;
}
-QMakeVfs::~QMakeVfs()
+void QMakeVfs::deref()
{
#ifdef PROEVALUATOR_THREAD_SAFE
QMutexLocker locker(&s_mutex);
@@ -67,7 +77,6 @@ QMakeVfs::~QMakeVfs()
}
}
-
#ifdef PROPARSER_THREAD_SAFE
QMutex QMakeVfs::s_mutex;
#endif
diff --git a/src/shared/proparser/qmakevfs.h b/src/shared/proparser/qmakevfs.h
index 34dd96fd7b..00547cf7fc 100644
--- a/src/shared/proparser/qmakevfs.h
+++ b/src/shared/proparser/qmakevfs.h
@@ -74,6 +74,9 @@ public:
QMakeVfs();
~QMakeVfs();
+ static void ref();
+ static void deref();
+
int idForFileName(const QString &fn, VfsFlags flags);
QString fileNameForId(int id);
bool writeFile(int id, QIODevice::OpenMode mode, VfsFlags flags, const QString &contents, QString *errStr);
diff --git a/src/tools/wininterrupt/wininterrupt.pro b/src/tools/wininterrupt/wininterrupt.pro
index d7ea748d2a..5e4621cd5b 100644
--- a/src/tools/wininterrupt/wininterrupt.pro
+++ b/src/tools/wininterrupt/wininterrupt.pro
@@ -25,11 +25,14 @@ build_all:!build_pass {
CONFIG += release
}
-ENV_CPU=$$(CPU)
+# Check for VSCMD_ARG_TGT_ARCH (VS 17) or Platform=X64 (VS 13, 15)
+# For older versions, fall back to hacky check on LIBPATH
+ENV_TARGET_ARCH=$$(VSCMD_ARG_TGT_ARCH)
+isEmpty(ENV_TARGET_ARCH):ENV_TARGET_ARCH = $$(Platform)
ENV_LIBPATH=$$(LIBPATH)
-contains(ENV_CPU, ^AMD64$) {
+contains(ENV_TARGET_ARCH, .*64$) {
TARGET = win64interrupt
-} else:isEmpty(ENV_CPU):contains(ENV_LIBPATH, ^.*amd64.*$) {
+} else:isEmpty(ENV_TARGET_ARCH):contains(ENV_LIBPATH, ^.*amd64.*$) {
TARGET = win64interrupt
} else {
TARGET = win32interrupt
diff --git a/tests/system/suite_tools/tst_codepasting/test.py b/tests/system/suite_tools/tst_codepasting/test.py
index ed9c405220..023d785312 100644
--- a/tests/system/suite_tools/tst_codepasting/test.py
+++ b/tests/system/suite_tools/tst_codepasting/test.py
@@ -155,7 +155,7 @@ def main():
skippedPasting = True
description = "Paste from 2017-05-11"
if protocol == NAME_KDE:
- pasteId = "pyy2xvjh7" # valid for one year
+ pasteId = "pysjk6n2i"
pastedText = readFile(os.path.join(os.getcwd(), "testdata", "main-prepasted.cpp"))
elif skipPastingToPastebinCom and protocol == NAME_PBCOM:
pasteId = "8XHP0ZgH"
@@ -186,7 +186,7 @@ def main():
clickButton(waitForObject(":*Qt Creator.Clear_QToolButton"))
continue
test.compare(filenameCombo.currentText, "%s: %s" % (protocol, pasteId), "Verify title of editor")
- if protocol == NAME_PBCOM and pastedText.endswith("\n"):
+ if protocol in (NAME_KDE, NAME_PBCOM) and pastedText.endswith("\n"):
pastedText = pastedText[:-1]
test.compare(editor.plainText, pastedText, "Verify that pasted and fetched texts are the same")
invokeMenuItem("File", "Close All")