Basic exception/gcsafe annotations #58
Open
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.
Both forward declarations and methods are assumed not gcsafe and raising
Exception
unless otherwise specified.This PR is a first pass over the API to ensure that it does not leak unwanted
raises
/not-gcsafe
effects into the application usingnimqml
from the bulk of its API.The changes do not touch the "public" QAIM methods but aims to fix at least the internals. Of course, raising from within a QAIM callback would crash the application but applying strict
raises: []
would be a (significantly) breaking change since user code would now have to be raises-correct.c
functions do not raise exception (importc
impliesgcsafe
but notraises:[]
.}metaObject
instances are not suitable to expose as a global since it's a ref type (accessing it from different threads is not gcsafe) - this PR switches to a lazy threadvar insteadFree bonus: leak fix in QModelIndex