rework deprecated g_type_class_add_private()
[platform/core/system/tlm.git] / src / daemon / tlm-dbus-observer.c
index c57f690..98ab6b4 100644 (file)
 #include "tlm-manager.h"
 #include "common/tlm-error.h"
 
-G_DEFINE_TYPE (TlmDbusObserver, tlm_dbus_observer, G_TYPE_OBJECT);
-
-#define TLM_DBUS_OBSERVER_PRIV(obj) G_TYPE_INSTANCE_GET_PRIVATE ((obj), \
-            TLM_TYPE_DBUS_OBSERVER, TlmDbusObserverPrivate)
-
 typedef struct
 {
     TlmDbusRequest *dbus_request;
@@ -66,6 +61,8 @@ struct _TlmDbusObserverPrivate
     DbusObserverEnableFlags enable_flags;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE (TlmDbusObserver, tlm_dbus_observer, G_TYPE_OBJECT);
+
 static void
 _handle_dbus_client_added (
         TlmDbusObserver *self,
@@ -419,12 +416,15 @@ _is_valid_switch_user_dbus_request(
         TlmDbusRequest *dbus_request,
         TlmSeat *seat)
 {
-    if (0 == g_strcmp0(dbus_request->username,
-            tlm_seat_get_occupying_username(seat))) {
+    g_return_val_if_fail (seat && TLM_IS_SEAT(seat), FALSE);
+    gboolean ret = TRUE;
+    gchar *occupying_username = tlm_seat_get_occupying_username(seat);
+    if (0 == g_strcmp0(dbus_request->username,occupying_username)) {
         WARN("Cannot switch to same username");
-        return FALSE;
+        ret = FALSE;
     }
-    return TRUE;
+    g_free(occupying_username);
+    return ret;
 }
 
 static gboolean
@@ -487,8 +487,9 @@ _process_request (
             goto _finished;
         }
 
-        if (req->seat && req->seat != seat) {
-            g_object_unref(req->seat);
+        if (req->seat != seat) {
+            if (req->seat)
+                g_object_unref(req->seat);
             req->seat = seat;
             g_object_ref(req->seat);
         }
@@ -504,7 +505,7 @@ _process_request (
                 dbus_req->password, dbus_req->environment);
         break;
     case TLM_DBUS_REQUEST_TYPE_LOGOUT_USER:
-        ret = tlm_seat_terminate_session (seat);
+        ret = tlm_seat_terminate_session (seat, FALSE);
         break;
     case TLM_DBUS_REQUEST_TYPE_SWITCH_USER:
         // Refuse request if the request's username is same to
@@ -765,8 +766,6 @@ tlm_dbus_observer_class_init (TlmDbusObserverClass *klass)
 {
     GObjectClass *g_klass = G_OBJECT_CLASS (klass);
 
-    g_type_class_add_private (klass, sizeof (TlmDbusObserverPrivate));
-
     g_klass->dispose = tlm_dbus_observer_dispose ;
     g_klass->finalize = tlm_dbus_observer_finalize;
 }
@@ -774,7 +773,7 @@ tlm_dbus_observer_class_init (TlmDbusObserverClass *klass)
 static void
 tlm_dbus_observer_init (TlmDbusObserver *dbus_observer)
 {
-    TlmDbusObserverPrivate *priv = TLM_DBUS_OBSERVER_PRIV (dbus_observer);
+    TlmDbusObserverPrivate *priv = tlm_dbus_observer_get_instance_private (dbus_observer);
 
     priv->manager = NULL;
     priv->seat = NULL;