newsAdvanced Gtk+ Sequencer - News: fixed ref-count

 
 
Latest News
Advanced Gtk+ Sequencer version 6.5.x posted by jkraehemann, Sun 11 Feb 2024 05:06:15 PM UTC
Advanced Gtk+ Sequencer version 6.3.5 posted by jkraehemann, Fri 19 Jan 2024 11:53:24 AM UTC
Advanced Gtk+ Sequencer v6.1.0 released posted by jkraehemann, Thu 28 Sep 2023 04:55:19 AM UTC
Advanced Gtk+ Sequencer v6.0.0 released posted by jkraehemann, Mon 21 Aug 2023 11:48:52 AM UTC
Advanced Gtk+ Sequencer v5.5.0 released posted by jkraehemann, Sat 05 Aug 2023 10:21:52 AM UTC

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

 

Back to the top

Powered by Savane 3.13-3230.
Corresponding source code