Fix potential crash uncovered by UBSAN
m_inCtor might be read before being initialized since when the earlier members are initialized they can call back into Frame.
This commit is contained in:
@@ -282,7 +282,9 @@ protected:
|
|||||||
virtual DockWidgetBase *currentDockWidget_impl() const = 0;
|
virtual DockWidgetBase *currentDockWidget_impl() const = 0;
|
||||||
virtual int dockWidgetCount_impl() const = 0;
|
virtual int dockWidgetCount_impl() const = 0;
|
||||||
virtual int nonContentsHeight() const = 0;
|
virtual int nonContentsHeight() const = 0;
|
||||||
|
private:
|
||||||
|
bool m_inCtor = true; // Needs to be initialized early, as pointed out by UBSAN
|
||||||
|
protected:
|
||||||
bool m_inDtor = false;
|
bool m_inDtor = false;
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(Frame)
|
Q_DISABLE_COPY(Frame)
|
||||||
@@ -291,7 +293,6 @@ private:
|
|||||||
void onCurrentTabChanged(int index);
|
void onCurrentTabChanged(int index);
|
||||||
void scheduleDeleteLater();
|
void scheduleDeleteLater();
|
||||||
bool event(QEvent *) override;
|
bool event(QEvent *) override;
|
||||||
bool m_inCtor = true;
|
|
||||||
TitleBar *const m_titleBar;
|
TitleBar *const m_titleBar;
|
||||||
DropArea *m_dropArea = nullptr;
|
DropArea *m_dropArea = nullptr;
|
||||||
const FrameOptions m_options;
|
const FrameOptions m_options;
|
||||||
|
|||||||
Reference in New Issue
Block a user