Advanced Gtk+ Sequencer - News
fixed ref-count
Item posted by Joël Krähemann <jkraehemann> on Sat 09 Feb 2019 02:46:41 PM UTC.
The following code snipped is from GLib-2.0 API Reference Manual:
gint intval;
gchar *strval;
GObject *objval;
g_object_get (my_object,
"int-property", &intval,
"str-property", &strval,
"obj-property", &objval,
NULL);
// Do something with intval, strval, objval
g_free (strval);
g_object_unref (objval);
As you might have recognized objval needs a call to g_object_unref() after retrieving using g_object_get().
I was not aware of this.
Reworked all properties
The rework of all properties was just done, it took 3 days. For properties returning GList containing objects, you need to call g_object_unref, now.
Here you see the AgsAudio:play get property:
case PROP_PLAY:
{
pthread_mutex_t *play_mutex;
/* get play mutex */
pthread_mutex_lock(ags_audio_get_class_mutex());
play_mutex = audio->play_mutex;
pthread_mutex_unlock(ags_audio_get_class_mutex());
/* */
pthread_mutex_lock(play_mutex);
g_value_set_pointer(value,
g_list_copy_deep(audio->play,
(GCopyFunc) g_object_ref,
NULL));
pthread_mutex_unlock(play_mutex);
}
break;
by Joël
Powered by Savane 3.14-8aba.
Corresponding source code