1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 04:27:45 +00:00

Kernel/VirtIO: Don't expose constructors as public method

This leads to a bad pattern where anyone could create an RNG or a
Console object. Instead, let's just use the common pattern of a static
method to instantiate a new object and return it wrapped by a
NonnullRefPtr.
This commit is contained in:
Liav A 2021-08-27 12:32:05 +03:00 committed by Andreas Kling
parent 01ae614727
commit 8e90a4fd1c
5 changed files with 16 additions and 5 deletions

View file

@ -19,13 +19,13 @@ class RNG final
: public RefCounted<RNG>
, public VirtIO::Device {
public:
static NonnullRefPtr<RNG> must_create(PCI::Address address);
virtual StringView purpose() const override { return class_name(); }
RNG(PCI::Address);
virtual ~RNG() override;
private:
virtual StringView class_name() const override { return "VirtIOConsole"; }
explicit RNG(PCI::Address);
virtual bool handle_device_config_change() override;
virtual void handle_queue_update(u16 queue_index) override;
void request_entropy_from_host();