← Back to team overview

dx-packages team mailing list archive

[Bug 1244468] Re: implicitly-generated variants are leaked

 

** Changed in: vala
       Status: New => Fix Released

-- 
You received this bug notification because you are a member of DX
Packages, which is subscribed to indicator-sound in Ubuntu.
Matching subscriptions: dx-packages
https://bugs.launchpad.net/bugs/1244468

Title:
  implicitly-generated variants are leaked

Status in Bluetooth Menu:
  Fix Committed
Status in Sound Menu:
  Fix Committed
Status in Vala:
  Fix Released
Status in “indicator-bluetooth” package in Ubuntu:
  New
Status in “indicator-sound” package in Ubuntu:
  New

Bug description:
  The implicitly-created GVariant is leaked in Service's
  volume_changed() function. We can fix it by making the variant
  explicit. But, should this be reported upstream as a Vala bug?

  One line diff:
  - volume_action.set_state (volume);
  + volume_action.set_state (new Variant.double (volume));

  C code generated from "volume_action.set_state (volume)":

    static GVariant* _variant_new4 (gdouble value) {
      return g_variant_ref_sink (g_variant_new_double (value));
    }
    static void indicator_sound_service_volume_changed (IndicatorSoundService* self, gdouble volume) {
      ...
      _tmp3_ = volume;
     _tmp4_ = _variant_new4 (_tmp3_);
      g_simple_action_set_state (volume_action, _tmp4_);
      ...
    }

  C code generated from "volume_action.set_state (new Variant.double
  (volume))":

    static void indicator_sound_service_volume_changed (IndicatorSoundService* self, gdouble volume) {
      ...
      _tmp3_ = volume;
      _tmp4_ = g_variant_new_double (_tmp3_);
      g_variant_ref_sink (_tmp4_);
      _tmp5_ = _tmp4_;
      g_simple_action_set_state (volume_action, _tmp5_);
      _g_variant_unref0 (_tmp5_);
      ...
    }

To manage notifications about this bug go to:
https://bugs.launchpad.net/indicator-bluetooth/+bug/1244468/+subscriptions