newsAdvanced Gtk+ Sequencer - News: fixed ref-count

 
 
Latest News
GSequencer version 3.10.5 released posted by jkraehemann, Sun 29 Aug 2021 07:41:14 AM UTC - 0 replies
implement VST3 C API Wrapper posted by jkraehemann, Tue 10 Aug 2021 12:53:03 PM UTC - 0 replies
refactored utility functions posted by jkraehemann, Tue 03 Aug 2021 06:26:38 AM UTC - 0 replies
GSequencer version 3.9.1 released posted by jkraehemann, Wed 30 Jun 2021 06:07:07 AM UTC - 0 replies
preparation for migration to Gtk4 posted by jkraehemann, Thu 18 Feb 2021 10:38:40 AM UTC - 0 replies
[Submit News]
[103 news in archive]

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

No messages in fixed ref-count

 

Back to the top


Powered by Savane 3.7