From 488de12ed406faf90481e477eb7121218359d2fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?kleines=20Filmr=C3=B6llchen?= Date: Thu, 24 Jun 2021 23:56:28 +0200 Subject: [PATCH] LibAudio: Make LoaderPlugin::error_string return String& Previously, error_string() returned char* which is bad Serenity style and caused issues when other error handling methods were tried. As both WavLoader and (future) FLAC loader store a String internally for the error message, it makes sense to return a String reference instead. --- Userland/Libraries/LibAudio/Loader.h | 7 +++++-- Userland/Libraries/LibAudio/WavLoader.h | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Userland/Libraries/LibAudio/Loader.h b/Userland/Libraries/LibAudio/Loader.h index 5075b0062a..a4bad829c1 100644 --- a/Userland/Libraries/LibAudio/Loader.h +++ b/Userland/Libraries/LibAudio/Loader.h @@ -15,6 +15,9 @@ namespace Audio { +static const String empty_string = ""; +static String no_plugin_error = "No loader plugin available"; + class LoaderPlugin { public: virtual ~LoaderPlugin() { } @@ -22,7 +25,7 @@ public: virtual bool sniff() = 0; virtual bool has_error() { return false; } - virtual const char* error_string() { return ""; } + virtual const String& error_string() { return empty_string; } virtual RefPtr get_more_samples(size_t max_bytes_to_read_from_input = 128 * KiB) = 0; @@ -52,7 +55,7 @@ public: static NonnullRefPtr create(const ByteBuffer& buffer) { return adopt_ref(*new Loader(buffer)); } bool has_error() const { return m_plugin ? m_plugin->has_error() : true; } - const char* error_string() const { return m_plugin ? m_plugin->error_string() : "No loader plugin available"; } + const String& error_string() const { return m_plugin ? m_plugin->error_string() : no_plugin_error; } RefPtr get_more_samples(size_t max_bytes_to_read_from_input = 128 * KiB) const { return m_plugin ? m_plugin->get_more_samples(max_bytes_to_read_from_input) : nullptr; } diff --git a/Userland/Libraries/LibAudio/WavLoader.h b/Userland/Libraries/LibAudio/WavLoader.h index db333b571f..4eaa4b9a4b 100644 --- a/Userland/Libraries/LibAudio/WavLoader.h +++ b/Userland/Libraries/LibAudio/WavLoader.h @@ -39,7 +39,7 @@ public: virtual bool sniff() override { return valid; } virtual bool has_error() override { return !m_error_string.is_null(); } - virtual const char* error_string() override { return m_error_string.characters(); } + virtual const String& error_string() override { return m_error_string; } // The Buffer returned contains input data resampled at the // destination audio device sample rate.