<pre style='margin:0'>
David B. Evans (dbevans) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/bfdfff0aef4f1246e3b9ba8ad311ca8c1520a519">https://github.com/macports/macports-ports/commit/bfdfff0aef4f1246e3b9ba8ad311ca8c1520a519</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new bfdfff0  gnome-online-accounts: update to version 3.28.2
</span>bfdfff0 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit bfdfff0aef4f1246e3b9ba8ad311ca8c1520a519
</span>Author: David B. Evans <devans@macports.org>
AuthorDate: Thu Feb 21 23:40:59 2019 -0800

<span style='display:block; white-space:pre;color:#404040;'>    gnome-online-accounts: update to version 3.28.2
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * use portgroup cxx11 1.1 for compatility with webkit2-gtk
</span><span style='display:block; white-space:pre;color:#404040;'>    * use perl5.28 for compatibility with intltool
</span><span style='display:block; white-space:pre;color:#404040;'>    * drop old webkit-gtk3-2.0 fallback version
</span>---
 gnome/gnome-online-accounts/Portfile               |  60 +--
 gnome/gnome-online-accounts/files/autogen.sh-3.8.5 |  20 -
 gnome/gnome-online-accounts/files/patch-alarm.diff | 539 ---------------------
 3 files changed, 13 insertions(+), 606 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gnome-online-accounts/Portfile b/gnome/gnome-online-accounts/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index b76678f..ce13027 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/gnome/gnome-online-accounts/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gnome/gnome-online-accounts/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2,11 +2,10 @@
</span> 
 PortSystem          1.0
 PortGroup           gobject_introspection 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           cxx11 1.1
</span> 
 name                gnome-online-accounts
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# version 3.16.0+ requires webkit2gtk-4.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version             3.28.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             3.28.2
</span> 
 license             LGPL-2
 set branch          [join [lrange [split ${version} .] 0 1] .]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -20,16 +19,18 @@ master_sites        gnome:sources/${name}/${branch}/
</span> 
 use_xz              yes
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  70a77e53014a96df9e645c324e0b9a57042e7bb4 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  87bc4ef307604f1ce4f09f6e5c9996ef8d37ca5e0a3bf76f6b27d71844adb40c \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    1531200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  c980292a68cb7b710e06f2a9b1e3b83a3c8de9d0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  c0ac12134a7d0005c7abb203896474f750e664d26fcfff457943211586513c27 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    1539640
</span> 
 depends_build       port:pkgconfig \
                     port:libxslt \
                     port:docbook-xsl-nons
 
 # intltool required for git submodule telepathy-account-widgets only
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# use perl5.28 for compatibility with intltool
</span> depends_build-append \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:perl5.28 \
</span>                     port:intltool
 
 depends_lib         port:gdk-pixbuf2 \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,10 +42,14 @@ depends_lib         port:gdk-pixbuf2 \
</span>                     port:libxml2 \
                     port:gcr \
                     port:telepathy-glib \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:vala
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:vala \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    path:lib/pkgconfig/webkit2gtk-4.0.pc:webkit2-gtk
</span> 
 gobject_introspection yes
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.env-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    INTLTOOL_PERL=${prefix}/bin/perl5.28
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> configure.args      --enable-ubuntu-online-accounts=no \
                     --enable-compile-warnings=no \
                     --disable-exchange \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -65,43 +70,4 @@ configure.args      --enable-ubuntu-online-accounts=no \
</span>                     --disable-maintainer-mode \
                     --disable-silent-rules
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platform darwin {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${configure.cxx_stdlib} eq "libstdc++"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        version         3.8.5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        revision        2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        checksums       rmd160  21889d886fa262e536929ecb6905cfcd3f50a462 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        sha256  34d6fbc33bda4c7bba8aa52343ebe1eb8afe1033097c10a2d9979c0a99593e5d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_build-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:autoconf \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:automake \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:libtool \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:gtk-doc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_lib-delete \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        port:telepathy-glib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_lib-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        path:lib/pkgconfig/webkitgtk-3.0.pc:webkit-gtk3-2.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        patch-alarm.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            xinstall -m 755 ${filespath}/autogen.sh-${version} ${worksrcpath}/autogen.sh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.cmd   ./autogen.sh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.cflags-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -Wno-format-nonliteral
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-delete  \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        --disable-media-server \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        --enable-inspector \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        --enable-foursquare \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        --enable-ubuntu-online-accounts=no \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        --enable-yahoo \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        --enable-telepathy \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        --enable-pocket \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        --enable-lastfm
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Version 3.8.5 is the last version that will build on platforms supporting libstdc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        livecheck.type  none
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_lib-append path:lib/pkgconfig/webkit2gtk-4.0.pc:webkit2-gtk
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        livecheck.type  gnome
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.type      gnome
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gnome-online-accounts/files/autogen.sh-3.8.5 b/gnome/gnome-online-accounts/files/autogen.sh-3.8.5
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 96e28af..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/gnome/gnome-online-accounts/files/autogen.sh-3.8.5
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,20 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#!/bin/sh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Run this to generate all the initial makefiles, etc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-srcdir=`dirname $0`
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-test -z "$srcdir" && srcdir=.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-PKG_NAME="goa"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(test -f $srcdir/src/Makefile.am) || {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    echo " top-level $PKG_NAME directory"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    exit 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-which gnome-autogen.sh || {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    echo "You need to install gnome-common"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    exit 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-. gnome-autogen.sh "$@"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/gnome/gnome-online-accounts/files/patch-alarm.diff b/gnome/gnome-online-accounts/files/patch-alarm.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 1affbcb..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/gnome/gnome-online-accounts/files/patch-alarm.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,539 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From cd6ee762c3bfcd2d103f3ff50698032eb0fe6e91 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Debarshi Ray <debarshir@gnome.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Fri, 08 Nov 2013 17:33:49 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: alarm: Do not clear the wrong objects when setting the time
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-When the time is set using goa_alarm_set_time, we cancel the existing
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-self->priv->cancellable and replace it with a new one. Then we take a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-reference to a new context and time. However, since when we cancelled
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-the old cancellable, we triggered a chain of events which cause
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-clear_scheduled_wakeups to be invoked from a idle callback. By the time
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-it gets invoked, self->priv->cancellable, self->priv->context and
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-self->priv->time point to the new objects that were set up in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-goa_alarm_set_time, which we don't want to clear.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Actually, there is no point in clearing them in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-clear_scheduled_wakeups, because goa_alarm_set_time already clears up
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-the older objects and the only other time we want to clear them is in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-dispose.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Fixes: https://bugzilla.gnome.org/711696
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 5f50243..112cb00 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -151,15 +151,9 @@ clear_scheduled_wakeups (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_clear_object (&self->priv->cancellable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_clear_pointer (&self->priv->context, (GDestroyNotify) g_main_context_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_clear_pointer (&self->priv->previous_wakeup_time,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    (GDestroyNotify) g_date_time_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_clear_pointer (&self->priv->time, (GDestroyNotify) g_date_time_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_assert (self->priv->timeout.source == NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   self->priv->type = GOA_ALARM_TYPE_UNSCHEDULED;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -167,6 +161,18 @@ clear_scheduled_wakeups (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+goa_alarm_dispose (GObject *object)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GoaAlarm *self = GOA_ALARM (object);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_clear_object (&self->priv->cancellable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_clear_pointer (&self->priv->context, (GDestroyNotify) g_main_context_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_clear_pointer (&self->priv->time, (GDestroyNotify) g_date_time_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  G_OBJECT_CLASS (goa_alarm_parent_class)->dispose (object);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- goa_alarm_finalize (GObject *object)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   GoaAlarm *self = GOA_ALARM (object);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -223,6 +229,7 @@ goa_alarm_class_init (GoaAlarmClass *klass)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   object_class = G_OBJECT_CLASS (klass);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  object_class->dispose = goa_alarm_dispose;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   object_class->finalize = goa_alarm_finalize;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   object_class->get_property = goa_alarm_get_property;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   object_class->set_property = goa_alarm_set_property;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -637,6 +644,7 @@ goa_alarm_set_time (GoaAlarm *self, GDateTime *time, GCancellable *cancellable)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   self->priv->time = time;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_clear_pointer (&self->priv->context, (GDestroyNotify) g_main_context_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   self->priv->context = g_main_context_ref (g_main_context_default ());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   schedule_wakeups (self);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cgit v0.9.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 5cbed5062f292a69fe1a514425ced1bd19589cbc Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Debarshi Ray <debarshir@gnome.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Fri, 08 Nov 2013 17:36:46 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: alarm: The global default main context is always the same
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Fixes: https://bugzilla.gnome.org/711696
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 112cb00..e51df73 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -644,8 +644,8 @@ goa_alarm_set_time (GoaAlarm *self, GDateTime *time, GCancellable *cancellable)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   self->priv->time = time;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_clear_pointer (&self->priv->context, (GDestroyNotify) g_main_context_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  self->priv->context = g_main_context_ref (g_main_context_default ());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (self->priv->context == NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    self->priv->context = g_main_context_ref (g_main_context_default ());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   schedule_wakeups (self);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cgit v0.9.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 8d0d36ecd67f4e020965efb74373db4644008bef Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Debarshi Ray <debarshir@gnome.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Mon, 11 Nov 2013 10:51:42 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: alarm: Use the same GSource pointer for TIMER and TIMEOUT alarms
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Simplifies the code so that it is easier to tag the "cancelled"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-handler with the correct GSource and GInputStream (if any) that are to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-be cleaned.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Fixes: https://bugzilla.gnome.org/711696
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index e51df73..eccfa09 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1,6 +1,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * Copyright (C) 2012 Red Hat, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * Copyright (C) 2012, 2013 Red Hat, Inc.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * This program is free software; you can redistribute it and/or modify
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-  * it under the terms of the GNU General Public License as published by
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -39,17 +39,6 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include "goalogging.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--typedef struct
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  GSource *source;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  GInputStream *stream;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} Timer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--typedef struct
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  GSource *source;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--} Timeout;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define MAX_TIMEOUT_INTERVAL (10 *1000)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- typedef enum
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -70,11 +59,8 @@ struct _GoaAlarmPrivate
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   GRecMutex lock;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   GoaAlarmType type;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  union
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    Timer timer;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    Timeout timeout;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GSource *scheduled_wakeup_source;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GInputStream *stream; /* NULL, unless using timerfd */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- enum
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -110,10 +96,10 @@ clear_scheduled_timer_wakeups (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   GError *error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   gboolean is_closed;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_clear_pointer (&self->priv->timer.source, (GDestroyNotify) g_source_destroy);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_clear_pointer (&self->priv->scheduled_wakeup_source, (GDestroyNotify) g_source_destroy);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   error = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  is_closed = g_input_stream_close (self->priv->timer.stream, NULL, &error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  is_closed = g_input_stream_close (self->priv->stream, NULL, &error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (!is_closed)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -121,14 +107,14 @@ clear_scheduled_timer_wakeups (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       g_error_free (error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_clear_object (&self->priv->timer.stream);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_clear_object (&self->priv->stream);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- clear_scheduled_timeout_wakeups (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_clear_pointer (&self->priv->timeout.source, (GDestroyNotify) g_source_destroy);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_clear_pointer (&self->priv->scheduled_wakeup_source, (GDestroyNotify) g_source_destroy);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -154,8 +140,6 @@ clear_scheduled_wakeups (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_clear_pointer (&self->priv->previous_wakeup_time,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    (GDestroyNotify) g_date_time_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_assert (self->priv->timeout.source == NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   self->priv->type = GOA_ALARM_TYPE_UNSCHEDULED;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_rec_mutex_unlock (&self->priv->lock);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -435,7 +419,7 @@ clear_timer_source (GTask *task)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   GoaAlarm *self;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   self = g_task_get_source_object (task);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  self->priv->timer.source = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  self->priv->scheduled_wakeup_source = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_object_unref (task);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -480,19 +464,19 @@ schedule_wakeups_with_timerfd (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   self->priv->type = GOA_ALARM_TYPE_TIMER;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  self->priv->timer.stream = g_unix_input_stream_new (fd, TRUE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  self->priv->stream = g_unix_input_stream_new (fd, TRUE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   task = g_task_new (self, self->priv->cancellable, NULL, NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   source =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     g_pollable_input_stream_create_source (G_POLLABLE_INPUT_STREAM
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                                           (self->priv->timer.stream),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                                           (self->priv->stream),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                            self->priv->cancellable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  self->priv->timer.source = source;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_source_set_callback (self->priv->timer.source,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  self->priv->scheduled_wakeup_source = source;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_source_set_callback (self->priv->scheduled_wakeup_source,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                          (GSourceFunc) on_timer_source_ready, task,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                          (GDestroyNotify) clear_timer_source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_source_attach (self->priv->timer.source, self->priv->context);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_source_attach (self->priv->scheduled_wakeup_source, self->priv->context);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_source_unref (source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -528,7 +512,7 @@ out:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- clear_timeout_source_pointer (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  self->priv->timeout.source = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  self->priv->scheduled_wakeup_source = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -556,13 +540,13 @@ schedule_wakeups_with_timeout_source (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   source = g_timeout_source_new (interval);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  self->priv->timeout.source = source;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_source_set_callback (self->priv->timeout.source,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  self->priv->scheduled_wakeup_source = source;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_source_set_callback (self->priv->scheduled_wakeup_source,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                          (GSourceFunc)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                          on_timeout_source_ready,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                          self, (GDestroyNotify) clear_timeout_source_pointer);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_source_attach (self->priv->timeout.source, self->priv->context);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_source_attach (self->priv->scheduled_wakeup_source, self->priv->context);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_source_unref (source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cgit v0.9.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From b7deea49691d7a9c1f4b2c7acdf9b77f2d69fda4 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Debarshi Ray <debarshir@gnome.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Mon, 11 Nov 2013 12:11:28 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: alarm: Tag the "cancelled" handler with the correct source and stream
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-When a time is set using goa_alarm_set_time, we try to clear the older
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-source and stream by cancelling self->priv->cancellable. However,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-before we have had a chance to actually clear them in an idle callback,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-a new source and stream corresponding to the new time is set. This
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-causes the older source and stream to be leaked, and instead the newly
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-created objects are cleared.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This is wrong. To set things right, we tag the cancelled handler with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-the older source and stream before they are overwritten.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Fixes: https://bugzilla.gnome.org/711696
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index eccfa09..442f275 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -90,16 +90,16 @@ clear_scheduled_immediate_wakeup (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--clear_scheduled_timer_wakeups (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+clear_scheduled_timer_wakeups (GoaAlarm *self, GSource *source, GInputStream *stream)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef HAVE_TIMERFD
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   GError *error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   gboolean is_closed;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_clear_pointer (&self->priv->scheduled_wakeup_source, (GDestroyNotify) g_source_destroy);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_source_destroy (source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   error = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  is_closed = g_input_stream_close (self->priv->stream, NULL, &error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  is_closed = g_input_stream_close (stream, NULL, &error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (!is_closed)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -107,18 +107,18 @@ clear_scheduled_timer_wakeups (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       g_error_free (error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_clear_object (&self->priv->stream);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_object_unref (stream);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--clear_scheduled_timeout_wakeups (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+clear_scheduled_timeout_wakeups (GoaAlarm *self, GSource *source)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_clear_pointer (&self->priv->scheduled_wakeup_source, (GDestroyNotify) g_source_destroy);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_source_destroy (source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--clear_scheduled_wakeups (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+clear_scheduled_wakeups (GoaAlarm *self, GSource *source, GInputStream *stream)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_rec_mutex_lock (&self->priv->lock);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   clear_scheduled_immediate_wakeup (self);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -126,11 +126,11 @@ clear_scheduled_wakeups (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   switch (self->priv->type)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     case GOA_ALARM_TYPE_TIMER:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      clear_scheduled_timer_wakeups (self);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      clear_scheduled_timer_wakeups (self, source, stream);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     case GOA_ALARM_TYPE_TIMEOUT:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      clear_scheduled_timeout_wakeups (self);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      clear_scheduled_timeout_wakeups (self, source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-       break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     default:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -161,7 +161,7 @@ goa_alarm_finalize (GObject *object)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   GoaAlarm *self = GOA_ALARM (object);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  clear_scheduled_wakeups (self);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  clear_scheduled_wakeups (self, self->priv->scheduled_wakeup_source, self->priv->stream);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   G_OBJECT_CLASS (goa_alarm_parent_class)->finalize (object);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -250,9 +250,18 @@ goa_alarm_init (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gboolean
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- async_alarm_cancel_idle_cb (gpointer user_data)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  GoaAlarm *self = user_data;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GoaAlarm *self;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GInputStream *stream;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GSource *source;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GTask *task = G_TASK (user_data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  gpointer task_data;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  clear_scheduled_wakeups (self);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  self = g_task_get_source_object (task);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  source = (GSource *) g_object_get_data (G_OBJECT (task), "alarm-scheduled-wakeup-source");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  task_data = g_object_get_data (G_OBJECT (task), "alarm-stream");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  stream = (task_data == NULL) ? NULL : G_INPUT_STREAM (task_data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  clear_scheduled_wakeups (self, source, stream);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return G_SOURCE_REMOVE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -261,13 +270,25 @@ on_cancelled (GCancellable *cancellable, gpointer user_data)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   GoaAlarm *self = GOA_ALARM (user_data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   GSource *idle_source;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  GTask *task;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  task = g_task_new (self, NULL, NULL, NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_object_set_data_full (G_OBJECT (task),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          "alarm-scheduled-wakeup-source",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          g_source_ref (self->priv->scheduled_wakeup_source),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                          (GDestroyNotify) g_source_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (self->priv->stream != NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+    g_object_set_data_full (G_OBJECT (task), "alarm-stream", g_object_ref (self->priv->stream), g_object_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   idle_source = g_idle_source_new ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_source_set_priority (idle_source, G_PRIORITY_HIGH_IDLE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_source_set_callback (idle_source, async_alarm_cancel_idle_cb, g_object_ref (self), g_object_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_source_set_callback (idle_source, async_alarm_cancel_idle_cb, g_object_ref (task), g_object_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_source_attach (idle_source, self->priv->context);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_source_unref (idle_source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  g_object_unref (task);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -412,17 +433,6 @@ out:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_rec_mutex_unlock (&self->priv->lock);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return run_again;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--clear_timer_source (GTask *task)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  GoaAlarm *self;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  self = g_task_get_source_object (task);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  self->priv->scheduled_wakeup_source = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_object_unref (task);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static gboolean
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -475,7 +485,7 @@ schedule_wakeups_with_timerfd (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   self->priv->scheduled_wakeup_source = source;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_source_set_callback (self->priv->scheduled_wakeup_source,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                          (GSourceFunc) on_timer_source_ready, task,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--                         (GDestroyNotify) clear_timer_source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+                         (GDestroyNotify) g_object_unref);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_source_attach (self->priv->scheduled_wakeup_source, self->priv->context);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_source_unref (source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cgit v0.9.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 72e6d277de953b24e488a7b75464883a4abb5ca1 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Debarshi Ray <debarshir@gnome.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Mon, 11 Nov 2013 13:49:06 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: alarm: Remove redundant preprocessor conditional
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reading the rest of the code, it appears to me that the preprocessor
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-conditionals were meant to surpress compiler warnings and errors
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-caused by the lack of timerfd support. For the rest of the logic,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-GoaAlarmType is used to separate the different kinds of timers.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Fixes: https://bugzilla.gnome.org/711696
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 442f275..9e0ab64 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -92,7 +92,6 @@ clear_scheduled_immediate_wakeup (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- clear_scheduled_timer_wakeups (GoaAlarm *self, GSource *source, GInputStream *stream)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#ifdef HAVE_TIMERFD
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   GError *error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   gboolean is_closed;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -108,7 +107,6 @@ clear_scheduled_timer_wakeups (GoaAlarm *self, GSource *source, GInputStream *st
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_object_unref (stream);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cgit v0.9.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From c4f25c45758875a430af39663b3f8b81091320f1 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Debarshi Ray <debarshir@gnome.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Tue, 12 Nov 2013 10:00:05 +0000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: alarm: Consolidate clear_scheduled_time*_wakeups into one function
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Since we are using the same GSource pointer for TIMER and TIMEOUT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-alarms, there is no reason to continue having separate functions.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Fixes: https://bugzilla.gnome.org/711696
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/goaidentity/goaalarm.c b/src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 9e0ab64..ed805d7 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/goaidentity/goaalarm.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -90,49 +90,31 @@ clear_scheduled_immediate_wakeup (GoaAlarm *self)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--clear_scheduled_timer_wakeups (GoaAlarm *self, GSource *source, GInputStream *stream)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  GError *error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  gboolean is_closed;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_source_destroy (source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  error = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  is_closed = g_input_stream_close (stream, NULL, &error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  if (!is_closed)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      goa_warning ("GoaAlarm: could not close timer stream: %s", error->message);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      g_error_free (error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_object_unref (stream);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--clear_scheduled_timeout_wakeups (GoaAlarm *self, GSource *source)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  g_source_destroy (source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static void
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- clear_scheduled_wakeups (GoaAlarm *self, GSource *source, GInputStream *stream)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_rec_mutex_lock (&self->priv->lock);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   clear_scheduled_immediate_wakeup (self);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--  switch (self->priv->type)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+  if (self->priv->type != GOA_ALARM_TYPE_UNSCHEDULED)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    case GOA_ALARM_TYPE_TIMER:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      clear_scheduled_timer_wakeups (self, source, stream);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      g_source_destroy (source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    case GOA_ALARM_TYPE_TIMEOUT:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      clear_scheduled_timeout_wakeups (self, source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+      if (stream != NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          GError *error;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          gboolean is_closed;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--    default:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--      break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          error = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          is_closed = g_input_stream_close (stream, NULL, &error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          if (!is_closed)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              goa_warning ("GoaAlarm: could not close timer stream: %s", error->message);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+              g_error_free (error);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+            }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+          g_object_unref (stream);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-     }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   g_clear_pointer (&self->priv->previous_wakeup_time,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-cgit v0.9.2
</span></pre><pre style='margin:0'>

</pre>