https://bugs.kde.org/show_bug.cgi?id=445894

--- Comment #21 from Jiri Slaby <jirisl...@gmail.com> ---
(In reply to Vlad Zahorodnii from comment #20)
> Not sure what valgrind doesn't like, I don't see issues with that code right
> off the bat.

I reorganized the conditions to one per line:
>   303     const auto &checkBuffer = [this, backend, &buffer](const 
> QSharedPointer<DrmBuffer> &buf){
>   304         const auto &mods = supportedModifiers(buf->format());
>   305         if (backend)
>   306                 if (buf->format() == backend->drmFormat(m_output))
>   307                         if (mods.isEmpty() || 
> mods.contains(buf->modifier()))
>   308                                 if (buf->size() == bufferSize())
>   309                                         buffer = buf;
>   310     };

And added --track-origins=yes to valgrind (the last 2 lines are new):
> Conditional jump or move depends on uninitialised value(s)
>    at 0xCD2EBCF: 
> KWin::DrmPipeline::checkTestBuffer()::{lambda(QSharedPointer<KWin::DrmBuffer> 
> const&)#1}::operator()(QSharedPointer<KWin::DrmBuffer> const&) const 
> (drm_pipeline.cpp:306)
>    by 0xCD2EDA3: KWin::DrmPipeline::checkTestBuffer() (drm_pipeline.cpp:318)
>    by 0xCD2F41E: 
> KWin::DrmPipeline::commitPipelinesAtomic(QVector<KWin::DrmPipeline*> const&, 
> KWin::DrmPipeline::CommitMode, QVector<KWin::DrmObject*> const&) 
> (drm_pipeline.cpp:131)
>    by 0xCD26BA8: KWin::DrmGpu::testPipelines() (drm_gpu.cpp:427)
>    by 0xCD29E27: 
> KWin::DrmGpu::checkCrtcAssignment(QVector<KWin::DrmConnector*>, 
> QVector<KWin::DrmCrtc*>) (drm_gpu.cpp:365)
>    by 0xCD29E27: 
> KWin::DrmGpu::checkCrtcAssignment(QVector<KWin::DrmConnector*>, 
> QVector<KWin::DrmCrtc*>) (drm_gpu.cpp:365)
>    by 0xCD3B298: UnknownInlinedFun (drm_gpu.cpp:398)
>    by 0xCD3B298: UnknownInlinedFun (drm_gpu.cpp:396)
>    by 0xCD3B298: 
> KWin::DrmGpu::testPendingConfiguration(KWin::DrmGpu::TestMode) [clone 
> .constprop.0] (drm_gpu.cpp:403)
>    by 0xCD14B43: KWin::DrmBackend::updateOutputs() (drm_gpu.cpp:309)
>    by 0xCD16F0C: KWin::DrmBackend::handleUdevEvent() (drm_backend.cpp:237)
>    by 0x6FC54F2: UnknownInlinedFun (qobjectdefs_impl.h:398)
>    by 0x6FC54F2: void doActivate<false>(QObject*, int, void**) 
> (qobject.cpp:3886)
>    by 0x6FC88CE: QSocketNotifier::activated(QSocketDescriptor, 
> QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) 
> (moc_qsocketnotifier.cpp:178)
>    by 0x6FC90CA: QSocketNotifier::event(QEvent*) (qsocketnotifier.cpp:302)
>  Uninitialised value was created by a stack allocation
>    at 0xCD329F0: QtPrivate::QSlotObject<bool 
> (KWin::EglGbmBackend::*)(KWin::DrmAbstractOutput*), 
> QtPrivate::List<KWin::DrmAbstractOutput*>, void>::impl(int, 
> QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:411)

Not sure if it tells you what is THE uninitialized object.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to