From d1ceb4b6038c1047988977f93f1ab5510dcf3d70 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 11 Jan 2019 01:43:41 +0100 Subject: [PATCH] Fix uninitialized AbstractScreen instance pointer. ...yeah yeah, one day I'm gonna zero out the kernel's BSS segment. Soon.. --- Kernel/WindowComposer.cpp | 1 + Widgets/AbstractScreen.cpp | 5 +++++ Widgets/AbstractScreen.h | 2 ++ 3 files changed, 8 insertions(+) diff --git a/Kernel/WindowComposer.cpp b/Kernel/WindowComposer.cpp index 3a884bfffa..c33d236950 100644 --- a/Kernel/WindowComposer.cpp +++ b/Kernel/WindowComposer.cpp @@ -13,6 +13,7 @@ void WindowComposer_main() FrameBuffer::initialize(); EventLoop::initialize(); WindowManager::initialize(); + AbstractScreen::initialize(); auto info = current->get_display_info(); diff --git a/Widgets/AbstractScreen.cpp b/Widgets/AbstractScreen.cpp index d9453ca3be..948be12137 100644 --- a/Widgets/AbstractScreen.cpp +++ b/Widgets/AbstractScreen.cpp @@ -6,6 +6,11 @@ static AbstractScreen* s_the; +void AbstractScreen::initialize() +{ + s_the = nullptr; +} + AbstractScreen& AbstractScreen::the() { ASSERT(s_the); diff --git a/Widgets/AbstractScreen.h b/Widgets/AbstractScreen.h index e881874732..0018a07319 100644 --- a/Widgets/AbstractScreen.h +++ b/Widgets/AbstractScreen.h @@ -16,6 +16,8 @@ public: Size size() const { return { width(), height() }; } Rect rect() const { return { 0, 0, width(), height() }; } + static void initialize(); + protected: AbstractScreen(unsigned width, unsigned height);