GNOME Bugzilla – Bug 793543
Make sure atk objects exist while processing signals
Last modified: 2019-05-01 22:16:40 UTC
Created attachment 368480 [details] proposed fix The following backtrace was reported while running netbeans:
+ Trace 238401
This is most probably because the object was getting freed while the signal was being processed, and thus the hash table was being destroyed. We thus need to keep a reference on the atk object while the signal is processed. The attached patch does that, by adding a reference in alloc_callback_para, and releasing it in free_callback_para. However, since like explained in https://bugzilla.gnome.org/show_bug.cgi?id=766774 we have to avoid calling methods of applications objects, we can't afford unreferencing from the jaw thread. This patch thus makes it just queue the para struct to be freed, so it's all processed in the application when it makes the next accessibility call. This might actually fix other bugs (deleting a global ref on para->args might call a destructor).
Fixed by 355a91eaae8fb9f4d546ee7d1efc4aa527dfc322 ("Make sure atk objects exist while processing signals")