> On Jan. 11, 2015, 1:03 a.m., David Faure wrote: > > Can you explain to me what the patch really changes? AFAICS this is a > > no-op. The same logic with a different syntax. > > Alex Merry wrote: > Lazy evaluation of || means that if KSycoca::isAvailable() returns false, > KServiceType::serviceType("FakePluginType") is never called.
Incidentally, I started with a form where it was possibly more clear what is going on, but it just looks stupid - an `if` and an `else` branch containing only an `if` is normally written as an `if` followed by an `else if`, but in this case both branches have the same body. - Alex ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/121972/#review73719 ----------------------------------------------------------- On Jan. 10, 2015, 7:42 p.m., Alex Merry wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/121972/ > ----------------------------------------------------------- > > (Updated Jan. 10, 2015, 7:42 p.m.) > > > Review request for KDE Frameworks and David Faure. > > > Repository: kservice > > > Description > ------- > > Using KServiceType::serviceType when the sycoca database does not yet > exist can lead to an assert in the KServiceTypeFactory constructor being > called, meaning we never get to the line where we rebuild sycoca. > > > Diffs > ----- > > autotests/ksycocadicttest.cpp cec9eeb9b40d96b42321fe7f50b8a60b0f5b3492 > > Diff: https://git.reviewboard.kde.org/r/121972/diff/ > > > Testing > ------- > > rm -rf ~/.qttest; ./ksycocadicttest > > Without this patch, this fails with: > > ********* Start testing of KSycocaDictTest ********* > Config: Using QtTest library 5.4.0, Qt 5.4.0 (x86_64-little_endian-lp64 > shared (dynamic) release build; by GCC 4.9.2) > QDEBUG : KSycocaDictTest::initTestCase() > ksycocadicttest(3942)/(kf5.kservice.sycoca) > ?[31m?[34mKSycocaPrivate::openDatabase?[0m: Trying to open ksycoca from > "/home/kde-devel/.qttest/cache/ksycoca5" > QDEBUG : KSycocaDictTest::initTestCase() > ksycocadicttest(3942)/(kf5.kservice.sycoca) > ?[31m?[34mKSycocaPrivate::openDatabase?[0m: Trying to open global ksycoca > from "/home/kde-devel/.qttest/share/kservices5/ksycoca5" > QDEBUG : KSycocaDictTest::initTestCase() > ksycocadicttest(3942)/(kf5.kservice.sycoca) > ?[31m?[34mKSycocaPrivate::openDatabase?[0m: Trying to open ksycoca from > "/home/kde-devel/.qttest/cache/ksycoca5" > QDEBUG : KSycocaDictTest::initTestCase() > ksycocadicttest(3942)/(kf5.kservice.sycoca) > ?[31m?[34mKSycocaPrivate::openDatabase?[0m: Trying to open global ksycoca > from "/home/kde-devel/.qttest/share/kservices5/ksycoca5" > QDEBUG : KSycocaDictTest::initTestCase() > ksycocadicttest(3942)/(kf5.kservice.sycoca) > ?[31m?[34mKSycocaPrivate::openDatabase?[0m: Trying to open ksycoca from > "/home/kde-devel/.qttest/cache/ksycoca5" > QDEBUG : KSycocaDictTest::initTestCase() > ksycocadicttest(3942)/(kf5.kservice.sycoca) > ?[31m?[34mKSycocaPrivate::openDatabase?[0m: Trying to open global ksycoca > from "/home/kde-devel/.qttest/share/kservices5/ksycoca5" > QDEBUG : KSycocaDictTest::initTestCase() > ksycocadicttest(3942)/(kf5.kservice.sycoca) > ?[31m?[34mKSycocaPrivate::checkDatabase?[0m: Still no database... > QFATAL : KSycocaDictTest::initTestCase() ksycocadicttest(3942)/(default) > ?[31munknown?[0m: ASSERT failure in > KServiceTypeFactory::KServiceTypeFactory(): "Could not open sycoca database, > you must run kbuildsycoca first!", file > /home/kde-devel/src/frameworks/kservice/src/services/kservicetypefactory.cpp, > line 38 > FAIL! : KSycocaDictTest::initTestCase() Received a fatal error. > Loc: [Unknown file(0)] > Totals: 0 passed, 1 failed, 0 skipped, 0 blacklisted > ********* Finished testing of KSycocaDictTest ********* > > With the patch, it succeeds. > > > Thanks, > > Alex Merry > >
_______________________________________________ Kde-frameworks-devel mailing list Kde-frameworks-devel@kde.org https://mail.kde.org/mailman/listinfo/kde-frameworks-devel