This repository has been archived by the owner on Jul 22, 2024. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As a consequence of the forced specialization on the
RT
argumentof
signal_emit
in #552, the compiler now knows whetherRT === Nothing
. In that case, it also knows thatreturn_value
will not be used, so it is free to be garbage-collected.When that happens, it triggers segfaults. EDIT: actually, that can't
be correct, because it doesn't create them when
RT===Nothing
.So probably #552 didn't trigger this.
This puts both potential
GValue
-arguments inside aGC.@preserve
to prevent garbage collection. Fixes #581.
A reproducer of the crash is with GtkObservables:
/some/path/GtkObservables$ julia --check-bounds=yes --color=yes --depwarn=yes --inline=yes --project=@. -e 'import Pkg; Pkg.test(; coverage=true)'
but that is obviously difficult to convert into a test. I've run it 5 times locally and have yet to see a crash, which did not happen before this commit.