1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-22 17:25:07 +00:00
serenity/Userland/Services/Clipboard/Storage.cpp
Daniel Bertalan 7d11edbe17 Userland: Fix unnecessary heap allocation of singleton objects
In order to avoid having multiple instances, we were keeping a pointer
to these singleton objects and only allocating them when it was null.

We have `__cxa_guard_{acquire,release}` in the userland, so there's no
need to do this dance, as the compiler will ensure that the constructors
are only called once.
2022-01-28 23:31:00 +01:00

36 lines
584 B
C++

/*
* Copyright (c) 2020, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#include <Clipboard/Storage.h>
namespace Clipboard {
Storage& Storage::the()
{
static Storage s_the;
return s_the;
}
Storage::Storage()
{
}
Storage::~Storage()
{
}
void Storage::set_data(Core::AnonymousBuffer data, const String& mime_type, const HashMap<String, String>& metadata)
{
m_buffer = move(data);
m_data_size = data.size();
m_mime_type = mime_type;
m_metadata = metadata;
if (on_content_change)
on_content_change();
}
}