Skip to content

v1.0.0-beta-2

Pre-release
Pre-release
Compare
Choose a tag to compare
@neilcsmith-net neilcsmith-net released this 19 Mar 16:21
· 92 commits to master since this release

Updated beta for v1.0.0 - see v1.0.0-beta-1 for major changes.

  • FIX make sure GObject subclasses can be GC'd after explicit call to dispose() - fixes #146
  • Minor updates to NativeObject.Handle API and added documentation. The atomic reference and boolean fields are now correctly private (mistakenly left protected in beta-1). ownsHandle() renamed as ownsReference().
  • Move GObject signal and Pad probe native management into Handle to ensure the callbacks are removed when GC'd as before.
    • Behavioural change - all callbacks are now disconnected on explicit calls to invalidate() and dispose(). In general make sure to keep references to objects with callbacks and dispose of them explicitly - relying on the GC for this is not recommended.
    • The Pad method for adding an event probe with an int mask has been removed from the API.
    • Event probe testing has been fixed.
  • NativeObject now implements AutoCloseable. Defaults to calling dispose().
  • FIX getting a GObject subclass from a GValue will now return a caller-owned reference (switched to g_value_dup_object). Iterating objects, eg. by calling getPads() would return and cache unowned objects whose lifecycle was not correctly tracked. This might cause regressions if code relied on the old behaviour.
  • Bus disposal is now linked to Pipeline lifecycle. Bus instances will be GC'd even when not explicitly closed. Test for this no longer ignored.
  • Added a system property to detach callback threads (workaround for #147 where JNA isn't clearing thread proxies on macOS) - use -Dglib.detachCallbackThreads=true