mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 00:50:22 +00:00
Oops, StringImpl's "the empty string" global was not always initialized.
These "oops forgot to initialize" bugs are getting annoying...
This commit is contained in:
parent
c5e55f4737
commit
702d308e67
Notes:
sideshowbarker
2024-07-19 18:45:23 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/702d308e67b
3 changed files with 14 additions and 7 deletions
|
@ -4,12 +4,17 @@
|
|||
|
||||
namespace AK {
|
||||
|
||||
static StringImpl* s_theEmptyStringImpl = nullptr;
|
||||
|
||||
void StringImpl::initializeGlobals()
|
||||
{
|
||||
s_theEmptyStringImpl = new StringImpl(ConstructTheEmptyStringImpl);;
|
||||
}
|
||||
|
||||
StringImpl& StringImpl::theEmptyStringImpl()
|
||||
{
|
||||
static StringImpl* s = nullptr;
|
||||
if (!s)
|
||||
s = new StringImpl(ConstructTheEmptyStringImpl);
|
||||
return *s;
|
||||
ASSERT(s_theEmptyStringImpl);
|
||||
return *s_theEmptyStringImpl;
|
||||
}
|
||||
|
||||
StringImpl::~StringImpl()
|
||||
|
|
|
@ -15,6 +15,7 @@ public:
|
|||
RetainPtr<StringImpl> toUppercase() const;
|
||||
|
||||
static StringImpl& theEmptyStringImpl();
|
||||
static void initializeGlobals();
|
||||
|
||||
~StringImpl();
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
#include "Console.h"
|
||||
|
||||
#define TEST_VFS
|
||||
//#define TEST_ELF_LOADER
|
||||
#define TEST_ELF_LOADER
|
||||
//#define TEST_CRASHY_USER_PROCESSES
|
||||
|
||||
static void motd_main() NORETURN;
|
||||
|
@ -102,8 +102,6 @@ static void init_stage2()
|
|||
// Anything that registers interrupts goes *after* PIC and IDT for obvious reasons.
|
||||
Syscall::initialize();
|
||||
|
||||
VirtualFileSystem::initializeGlobals();
|
||||
|
||||
extern void panel_main();
|
||||
|
||||
new Task(panel_main, "panel", IPC::Handle::PanelTask, Task::Ring0);
|
||||
|
@ -203,6 +201,9 @@ void init()
|
|||
|
||||
MemoryManager::initialize();
|
||||
|
||||
VirtualFileSystem::initializeGlobals();
|
||||
StringImpl::initializeGlobals();
|
||||
|
||||
auto keyboard = make<Keyboard>();
|
||||
|
||||
PIT::initialize();
|
||||
|
|
Loading…
Reference in a new issue