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

Fixed crash of reference pipes with the "--gui-only" option https://github.com/GrandOrgue/grandorgue/issues/2019 #2038

Merged
merged 3 commits into from
Nov 22, 2024

Conversation

oleg68
Copy link
Contributor

@oleg68 oleg68 commented Nov 8, 2024

Resolves: #2019

The reason of the crash was that GOReferencePipe internal structures were set up during the Initialise() call that was skipped with --gui-only.

This PR

  • Introduces the new class GOReferencingObject that may refer to another objects that might be loaded from the ODF in any order.
  • It's subclass should implement the OnResolvingReferences method where it should actually finds another objects from the model because they all have already loaded from the ODF.
  • GOOrganModel::Load calls ResolveReferences of all GOReferencingObject instances as the last step of ODF loading
  • GOReferencePipe is now a subclass of GOReferencingObject. GOReferencePipe::OnResolvingReferences now sets up it's internal structures instead of GOReferencePipe::Initialize().
  • GOReferencePipe is not more a subclass of GOCachedObject because it needs to read neither any files nor the cache

@larspalo
Copy link
Contributor

larspalo commented Nov 9, 2024

@oleg68 I can still reliably crash GO started with -g switch when I:

  • open/load any sample set with a (synth) tremulant
  • activate tremulant
  • then de-activate the tremulant to cause the crash

I've confirmed that the steps above work for among others Burea Church (2023), Jeux d'Orgues 2, Norrfjärden, Pitea MHS and Orgue de Pibrac so the issue seems to be related to synthetic tremulants, as for instance Bygdsiljum with a wave tremulant doesn't cause a crash.

@oleg68
Copy link
Contributor Author

oleg68 commented Nov 9, 2024

@larspalo I fixed crash with a synth tremulant

@oleg68 oleg68 mentioned this pull request Nov 10, 2024
4 tasks
@oleg68
Copy link
Contributor Author

oleg68 commented Nov 14, 2024

@rousseldenis Could you approve this PR?

@oleg68
Copy link
Contributor Author

oleg68 commented Nov 20, 2024

@rousseldenis Pourriez-vous approuver ce PR?

@oleg68 oleg68 merged commit 99a8527 into GrandOrgue:master Nov 22, 2024
1 check passed
@oleg68 oleg68 deleted the bugfix/g-crash branch November 22, 2024 07:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Crash when using -g switch
3 participants