Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] Pattern Crash When Switching Songs #5

Closed
N-SPC700 opened this issue Mar 5, 2022 · 3 comments
Closed

[Bug] Pattern Crash When Switching Songs #5

N-SPC700 opened this issue Mar 5, 2022 · 3 comments
Labels
bug Something isn't working trackerboy relating to the trackerboy front end

Comments

@N-SPC700
Copy link

N-SPC700 commented Mar 5, 2022

Bug description

Program crashes when what seemingly is pattern row ID not being valid on the next song.

How to reproduce

  1. Open the attached module: mm1gb_weirdbug.zip
  2. Go to the 3rd song in the module (Cut Man)
  3. Click on the pattern editor on the left, go to the last pattern row
  4. Change the song to the next one (Elec Man)
  5. Tracker should crash with an "Unexpected Error";
    [Uncaught exception] Type: class std::invalid_argument What: order does not exist

I cannot say for sure but it's likely trying to stay at the same pattern row (07) in the next song, despite that not being possible in the Elec Man song due to it containing only one pattern (00).

Information

  • OS: Windows 10 20H2
  • Architecture: x64
  • Trackerboy version: 0.6.0
@N-SPC700
Copy link
Author

N-SPC700 commented Mar 5, 2022

also tested this in the previous build 0.5.0 nightly. it doesn't seem to exhibit the same issue.

@stoneface86 stoneface86 added bug Something isn't working trackerboy relating to the trackerboy front end labels Mar 5, 2022
@stoneface86
Copy link
Owner

stoneface86 commented Mar 5, 2022

Was able to reproduce, exception occurs in OrderGrid::paintEvent line 328

OrderGrid's mPatternStart and mPatternEnd members are invalid, which caused the exception during the paint event.
My guess is that OrderGrid::updatePatternRange() is not getting called when it should.

@stoneface86
Copy link
Owner

Scratch that, it was caused by SongModel emitting its *Changed signals on song change, causing the PatternModel to throw an exception when handling the patternSizeChanged signal.

Solution:

  • SongModel should instead emit a new signal, reloaded and have the SongEditor handle that signal

stoneface86 added a commit that referenced this issue Mar 5, 2022
caused by PatternModel handling an inappropriate patternSizeChanged signal from SongModel
under certain conditions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working trackerboy relating to the trackerboy front end
Projects
None yet
Development

No branches or pull requests

2 participants