← Back to team overview

dx-packages team mailing list archive

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

 

This bug was fixed in the package indicator-bluetooth -
0.0.6+14.04.20131029.1-0ubuntu1

---------------
indicator-bluetooth (0.0.6+14.04.20131029.1-0ubuntu1) trusty; urgency=low

  [ Dmitrijs Ledkovs ]
  * Define "ubiquity" indicator profile, reusing the greeter object. (LP:
    #1241539)

  [ Charles Kerr ]
  * explicitly instantiate GVariants to avoid leaking them. See the
    description in bug #1244468 for before & after C code and more
    information. (LP: #1244468)

  [ Ted Gould ]
  * Adding a phone_greeter profile.

  [ Lars Uebernickel ]
  * Desktop menu: mark "Visible" menu item label as translatable. (LP:
    #1242038)

  [ Ubuntu daily release ]
  * Automatic snapshot from revision 75
 -- Ubuntu daily release <ps-jenkins@xxxxxxxxxxxxxxxxxxx>   Tue, 29 Oct 2013 10:31:12 +0000

** Changed in: indicator-bluetooth (Ubuntu)
       Status: New => Fix Released

** Changed in: indicator-sound (Ubuntu)
       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:
  Fix Released
Status in “indicator-sound” package in Ubuntu:
  Fix Released

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