From 28c17aa8c9c56c2a1dab92ddeef1cab80b11c287 Mon Sep 17 00:00:00 2001 From: Andrew Belt Date: Tue, 2 Nov 2021 03:32:09 -0400 Subject: [PATCH] Don't attempt to load wavetables more than 1M points. --- src/Scope.cpp | 2 +- src/Wavetable.hpp | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Scope.cpp b/src/Scope.cpp index 85db1fb..caeefe2 100644 --- a/src/Scope.cpp +++ b/src/Scope.cpp @@ -180,7 +180,7 @@ struct Scope : Module { }; -struct ScopeDisplay : TransparentWidget { +struct ScopeDisplay : LedDisplay { Scope* module; int statsFrame = 0; std::string fontPath; diff --git a/src/Wavetable.hpp b/src/Wavetable.hpp index 0160ed8..1a365c9 100644 --- a/src/Wavetable.hpp +++ b/src/Wavetable.hpp @@ -158,8 +158,12 @@ struct Wavetable { #endif return; + size_t len = wav.totalPCMFrameCount * wav.channels; + if (len == 0 || len >= (1 << 20)) + return; + samples.clear(); - samples.resize(wav.totalPCMFrameCount * wav.channels); + samples.resize(len); drwav_read_pcm_frames_f32(&wav, wav.totalPCMFrameCount, samples.data()); drwav_uninit(&wav);