commit 1d88a3e0e94542acf8ac95892ce1ff39b68424f3
parent 5f24046812bde5a33a4d1d74582559782cde6277
Author: Matt Demanett <matt@demanett.net>
Date: Sat, 23 Oct 2021 14:56:03 -0400
Rack2: fix crash in Mono on render with null module. #185
Diffstat:
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/Mono.cpp b/src/Mono.cpp
@@ -68,10 +68,15 @@ struct MonoWidget : BGModuleWidget {
}
void draw(const DrawArgs& args) override {
+ int active = 0;
+ if (_module) {
+ active = _module->_activeChannels;
+ }
+
nvgSave(args.vg);
- for (int i = 0; i < _module->maxChannels; ++i) {
+ for (int i = 0; i < Mono::maxChannels; ++i) {
nvgBeginPath(args.vg);
- if (i >= _module->_activeChannels) {
+ if (i >= active) {
nvgCircle(args.vg, (i % 4) * 10 + 5.0f, (i / 4) * 10 + 5.0f, 3.2f);
nvgFillColor(args.vg, inactiveBgColor);
nvgFill(args.vg);
@@ -81,8 +86,9 @@ struct MonoWidget : BGModuleWidget {
}
void drawLit(const DrawArgs& args) override {
+ assert(_module);
nvgSave(args.vg);
- for (int i = 0; i < _module->maxChannels; ++i) {
+ for (int i = 0; i < Mono::maxChannels; ++i) {
nvgBeginPath(args.vg);
if (i < _module->_activeChannels) {
nvgCircle(args.vg, (i % 4) * 10 + 5.0f, (i / 4) * 10 + 5.0f, 3.2f);