I realized while working on something else that we have little enough use of GValueArray to be able to avoid them somewhat easily, at least in telepathy-glib itself. Then I found a crash while fixing that.
Created attachment 86645 [details] [review] [0.20] Account: don't crash if a CM returns a non-(ays) Avatar
Created attachment 86648 [details] [review] glib-client-gen.py: ignore GValueArray deprecation warnings Yes we know we have GValueArrays.
Created attachment 86649 [details] [review] Make more use of tp_value_array_unpack, tp_value_array_build As well as being less code, they're not flagged as deprecated. This requires a bit of extra copying, because there's no tp_value_array_unpack_dup() or tp_value_array_build_take(), but it seems worth it.
Created attachment 86650 [details] [review] tp_value_array_free: add This lets connection managers and other Telepathy modules free the result of tp_value_array_build() without deprecation warnings.
Created attachment 86651 [details] [review] Use tp_value_array_free instead of g_value_array_free
Created attachment 86652 [details] [review] Suppress remaining GValueArray deprecation warnings
Created attachment 86653 [details] [review] Bump GLib deprecation-cleanness to 2.34
(In reply to comment #1) > Created attachment 86645 [details] [review] > [0.20] Account: don't crash if a CM returns a non-(ays) Avatar Er, "... if MC returns ...". I'll amend. That's all the patches here.
Looks good. Can't wait for porting to GDBus to remove all that :) I'm just wondering why you put parenthesis around the function name there: +(tp_value_array_free) (GValueArray *va)
(In reply to comment #9) > I'm just wondering why you put parenthesis around the function name there: > +(tp_value_array_free) (GValueArray *va) 16:16 < smcv> xclaesse: to stop it expanding the tp_value_array_free(va) macro 16:18 < xclaesse> ah, ok Thanks, merged to the new 0.23.x branch for 0.23.0 (with the first patch also merged for 0.20.5 and 0.22.0).
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.