From 95b4056d6a126a90e8e4e046e250ee4d75a1e8db Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Thu, 5 Apr 2012 20:06:42 +0100 Subject: [PATCH] Disable BlockingIODevice with QJSON. It looks like it doesn't work reliably in all cases, at least with certain versions. --- gui/retracer.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gui/retracer.cpp b/gui/retracer.cpp index 84f9742..983cd1a 100644 --- a/gui/retracer.cpp +++ b/gui/retracer.cpp @@ -283,8 +283,6 @@ void Retracer::run() /* * Parse JSON from the output. * - * XXX: QJSON expects blocking IO. - * * XXX: QJSON's scanner is inneficient as it abuses single * character QIODevice::peek (not cheap), instead of maintaining a * lookahead character on its own. @@ -292,7 +290,16 @@ void Retracer::run() bool ok = false; QJson::Parser jsonParser; +#if 0 parsedJson = jsonParser.parse(&io, &ok).toMap(); +#else + /* + * XXX: QJSON expects blocking IO, and it looks like + * BlockingIODevice does not work reliably in all cases. + */ + process.waitForFinished(-1); + parsedJson = jsonParser.parse(&process, &ok).toMap(); +#endif if (!ok) { msg = QLatin1String("failed to parse JSON"); } -- 2.45.2