spock171 / 1-Seifert

VCV 1.1.6 and 2.0.6 Versions of Gratrix-Modules
Other
2 stars 1 forks source link

Zooming the module browser while having the Gratrix on focus makes VCV crash. #1

Open jaynothin opened 2 years ago

jaynothin commented 2 years ago

Great to see the Gratrix back in VCV 👍 thanks

Unfortunately I get this bug:

By making the Gratrix modules the focus in the module browser, with word search or Brand, and changing the Zoom: % level a couple time, I get VCV to shut down/crash.

VCV module browser-Gratrix

crash message

Win 10 21H2 Rack 2.1.1

SteveRussell33 commented 1 year ago

GDB log

Thread 1 received signal SIGSEGV, Segmentation fault.
Display_Seq_G1::draw (this=0x1dfef52ec60, args=...) at src/Seq-G1.cpp:972
972        int  mode   = module->lcd_state[module->edit_prog][row][col].mode;
(gdb) bt
#0  Display_Seq_G1::draw (this=0x1dfef52ec60, args=...) at src/Seq-G1.cpp:972
#1  0x00007ff95f243828 in rack::widget::Widget::drawChild (this=this@entry=0x1dfef86cde0, child=0x1dfef52ec60, args=..., layer=layer@entry=0)
    at src/widget/Widget.cpp:311
#2  0x00007ff95f243942 in rack::widget::Widget::draw (this=this@entry=0x1dfef86cde0, args=...) at src/widget/Widget.cpp:280
#3  0x00007ff95f208b0a in rack::app::ModuleWidget::draw (this=0x1dfef86cde0, args=...) at src/app/ModuleWidget.cpp:213
#4  0x00007ff95f243828 in rack::widget::Widget::drawChild (this=this@entry=0x1dfef86cc80, child=0x1dfef86cde0, args=..., layer=layer@entry=0)
    at src/widget/Widget.cpp:311
#5  0x00007ff95f243942 in rack::widget::Widget::draw (this=this@entry=0x1dfef86cc80, args=...) at src/widget/Widget.cpp:280
#6  0x00007ff95f240fa3 in rack::widget::FramebufferWidget::drawFramebuffer (this=0x1dfef86cc80) at src/widget/FramebufferWidget.cpp:293
#7  0x00007ff95f241a99 in rack::widget::FramebufferWidget::render (this=0x1dfef86cc80, scale=..., offsetF=..., clipBox=...) at src/widget/FramebufferWidget.cpp:247
#8  0x00007ff95f242112 in rack::widget::FramebufferWidget::draw (this=0x1dfef86cc80, args=...) at src/widget/FramebufferWidget.cpp:130
#9  0x00007ff95f243828 in rack::widget::Widget::drawChild (this=this@entry=0x1dfef86cbb0, child=0x1dfef86cc80, args=..., layer=layer@entry=0)
    at src/widget/Widget.cpp:311
#10 0x00007ff95f243942 in rack::widget::Widget::draw (this=0x1dfef86cbb0, args=...) at src/widget/Widget.cpp:280
#11 0x00007ff95f243bcd in rack::widget::ZoomWidget::draw (this=0x1dfef86cbb0, args=...) at src/widget/ZoomWidget.cpp:54
#12 0x00007ff95f243828 in rack::widget::Widget::drawChild (this=this@entry=0x1dfef35ac00, child=0x1dfef86cbb0, args=..., layer=layer@entry=0)
    at src/widget/Widget.cpp:311
#13 0x00007ff95f243942 in rack::widget::Widget::draw (this=0x1dfef35ac00, args=...) at src/widget/Widget.cpp:280
#14 0x00007ff95f243828 in rack::widget::Widget::drawChild (this=this@entry=0x1dfef35ab50, child=0x1dfef35ac00, args=..., layer=layer@entry=0)
    at src/widget/Widget.cpp:311
#15 0x00007ff95f243942 in rack::widget::Widget::draw (this=0x1dfef35ab50, args=...) at src/widget/Widget.cpp:280
#16 0x00007ff95f243828 in rack::widget::Widget::drawChild (this=this@entry=0x1dfef2ce870, child=0x1dfef35ab50, args=..., layer=layer@entry=0)
    at src/widget/Widget.cpp:311
#17 0x00007ff95f243942 in rack::widget::Widget::draw (this=0x1dfef2ce870, args=...) at src/widget/Widget.cpp:280
#18 0x00007ff95f243828 in rack::widget::Widget::drawChild (this=this@entry=0x1dfef2ce7a0, child=0x1dfef2ce870, args=..., layer=layer@entry=0)
    at src/widget/Widget.cpp:311
#19 0x00007ff95f243942 in rack::widget::Widget::draw (this=0x1dfef2ce7a0, args=...) at src/widget/Widget.cpp:280
#20 0x00007ff95f243828 in rack::widget::Widget::drawChild (this=this@entry=0x1dfef2ce4c0, child=0x1dfef2ce7a0, args=..., layer=layer@entry=0)
    at src/widget/Widget.cpp:311
#21 0x00007ff95f243942 in rack::widget::Widget::draw (this=0x1dfef2ce4c0, args=...) at src/widget/Widget.cpp:280
#22 0x00007ff95f243828 in rack::widget::Widget::drawChild (this=this@entry=0x1dfef2ce400, child=0x1dfef2ce4c0, args=..., layer=layer@entry=0)
    at src/widget/Widget.cpp:311
#23 0x00007ff95f243942 in rack::widget::Widget::draw (this=this@entry=0x1dfef2ce400, args=...) at src/widget/Widget.cpp:280
#24 0x00007ff95f23c8af in rack::ui::ScrollWidget::draw (this=0x1dfef2ce400, args=...) at src/ui/ScrollWidget.cpp:68
#25 0x00007ff95f243828 in rack::widget::Widget::drawChild (this=this@entry=0x1dfef2add10, child=0x1dfef2ce400, args=..., layer=layer@entry=0)
    at src/widget/Widget.cpp:311
#26 0x00007ff95f243942 in rack::widget::Widget::draw (this=0x1dfef2add10, args=...) at src/widget/Widget.cpp:280
#27 0x00007ff95f243828 in rack::widget::Widget::drawChild (this=this@entry=0x1dfe70fadb0, child=0x1dfef2add10, args=..., layer=layer@entry=0) at src/widget/Widget.cpp:
311
#28 0x00007ff95f243942 in rack::widget::Widget::draw (this=0x1dfe70fadb0, args=...) at src/widget/Widget.cpp:280
#29 0x00007ff95f243828 in rack::widget::Widget::drawChild (this=this@entry=0x1dfe6e57610, child=0x1dfe70fadb0, args=..., layer=layer@entry=0) at src/widget/Widget.cpp:
311
#30 0x00007ff95f243942 in rack::widget::Widget::draw (this=0x1dfe6e57610, args=...) at src/widget/Widget.cpp:280
#31 0x00007ff95f247bb6 in rack::window::Window::step (this=this@entry=0x1dfe7047820) at src/window/Window.cpp:499
#32 0x00007ff95f247cf8 in rack::window::Window::run (this=0x1dfe7047820) at src/window/Window.cpp:408
#33 0x00007ff759fd0e73 in main (argc=<optimized out>, argv=<optimized out>) at adapters/standalone.cpp:259

Windows build warnings

src/Seq-G1.cpp: In constructor 'Seq_G1::Seq_G1()':
src/Seq-G1.cpp:253:47: warning: comparison of unsigned expression in '< 0' is always false [-Wtype-limits]
  253 |                 for (std::size_t row = 0; row < NOB_ROWS; ++row)
      |                                               ^
src/Seq-G2.cpp: In constructor 'Seq_G2::Seq_G2()':
src/Seq-G2.cpp:272:47: warning: comparison of unsigned expression in '< 0' is always false [-Wtype-limits]
  272 |                 for (std::size_t row = 0; row < NOB_ROWS; ++row)
      |                                               ^
src/Seq-G1.cpp: In constructor 'Display_Seq_G1::Display_Seq_G1(Seq_G1*, const rack::math::Rect&)':
src/Seq-G1.cpp:917:45: warning: 'char* strncpy(char*, const char*, size_t)' output truncated copying 4 bytes from a string of length 32 [-Wstringop-truncation]
  917 |                                 std::strncpy(text[row][col], "01234567012345670123456701234567", LCD_TEXT);
      |                                 ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/Seq-G2.cpp: In constructor 'Display_Seq_G2::Display_Seq_G2(Seq_G2*, const rack::math::Rect&)':
src/Seq-G2.cpp:949:45: warning: 'char* strncpy(char*, const char*, size_t)' output truncated copying 4 bytes from a string of length 32 [-Wstringop-truncation]
  949 |                                 std::strncpy(text[row][col], "01234567012345670123456701234567", LCD_TEXT);
      |                                 ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~