Make sure compiled resources only have / as dirsep
[platform/upstream/glib.git] / gio / gdbusobjectproxy.c
index c2dd2bb..9788925 100644 (file)
@@ -13,9 +13,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General
- * Public License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
  *
  * Author: David Zeuthen <davidz@redhat.com>
  */
@@ -46,7 +44,7 @@
 
 struct _GDBusObjectProxyPrivate
 {
-  GMutex *lock;
+  GMutex lock;
   GHashTable *map_name_to_iface;
   gchar *object_path;
   GDBusConnection *connection;
@@ -62,7 +60,8 @@ enum
 static void dbus_object_interface_init (GDBusObjectIface *iface);
 
 G_DEFINE_TYPE_WITH_CODE (GDBusObjectProxy, g_dbus_object_proxy, G_TYPE_OBJECT,
-                         G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, dbus_object_interface_init));
+                         G_ADD_PRIVATE (GDBusObjectProxy)
+                         G_IMPLEMENT_INTERFACE (G_TYPE_DBUS_OBJECT, dbus_object_interface_init))
 
 static void
 g_dbus_object_proxy_finalize (GObject *object)
@@ -71,7 +70,11 @@ g_dbus_object_proxy_finalize (GObject *object)
 
   g_hash_table_unref (proxy->priv->map_name_to_iface);
 
-  g_mutex_free (proxy->priv->lock);
+  g_clear_object (&proxy->priv->connection);
+
+  g_free (proxy->priv->object_path);
+
+  g_mutex_clear (&proxy->priv->lock);
 
   if (G_OBJECT_CLASS (g_dbus_object_proxy_parent_class)->finalize != NULL)
     G_OBJECT_CLASS (g_dbus_object_proxy_parent_class)->finalize (object);
@@ -88,9 +91,9 @@ g_dbus_object_proxy_get_property (GObject    *object,
   switch (prop_id)
     {
     case PROP_G_OBJECT_PATH:
-      g_mutex_lock (proxy->priv->lock);
+      g_mutex_lock (&proxy->priv->lock);
       g_value_set_string (value, proxy->priv->object_path);
-      g_mutex_unlock (proxy->priv->lock);
+      g_mutex_unlock (&proxy->priv->lock);
       break;
 
     case PROP_G_CONNECTION:
@@ -98,7 +101,7 @@ g_dbus_object_proxy_get_property (GObject    *object,
       break;
 
     default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (_object, prop_id, pspec);
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (proxy, prop_id, pspec);
       break;
     }
 }
@@ -114,19 +117,19 @@ g_dbus_object_proxy_set_property (GObject       *object,
   switch (prop_id)
     {
     case PROP_G_OBJECT_PATH:
-      g_mutex_lock (proxy->priv->lock);
+      g_mutex_lock (&proxy->priv->lock);
       proxy->priv->object_path = g_value_dup_string (value);
-      g_mutex_unlock (proxy->priv->lock);
+      g_mutex_unlock (&proxy->priv->lock);
       break;
 
     case PROP_G_CONNECTION:
-      g_mutex_lock (proxy->priv->lock);
+      g_mutex_lock (&proxy->priv->lock);
       proxy->priv->connection = g_value_dup_object (value);
-      g_mutex_unlock (proxy->priv->lock);
+      g_mutex_unlock (&proxy->priv->lock);
       break;
 
     default:
-      G_OBJECT_WARN_INVALID_PROPERTY_ID (_object, prop_id, pspec);
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (proxy, prop_id, pspec);
       break;
     }
 }
@@ -173,17 +176,13 @@ g_dbus_object_proxy_class_init (GDBusObjectProxyClass *klass)
                                                         G_PARAM_READWRITE |
                                                         G_PARAM_CONSTRUCT_ONLY |
                                                         G_PARAM_STATIC_STRINGS));
-
-  g_type_class_add_private (klass, sizeof (GDBusObjectProxyPrivate));
 }
 
 static void
 g_dbus_object_proxy_init (GDBusObjectProxy *proxy)
 {
-  proxy->priv = G_TYPE_INSTANCE_GET_PRIVATE (proxy,
-                                             G_TYPE_DBUS_OBJECT_PROXY,
-                                             GDBusObjectProxyPrivate);
-  proxy->priv->lock = g_mutex_new ();
+  proxy->priv = g_dbus_object_proxy_get_instance_private (proxy);
+  g_mutex_init (&proxy->priv->lock);
   proxy->priv->map_name_to_iface = g_hash_table_new_full (g_str_hash,
                                                           g_str_equal,
                                                           g_free,
@@ -195,9 +194,9 @@ g_dbus_object_proxy_get_object_path (GDBusObject *object)
 {
   GDBusObjectProxy *proxy = G_DBUS_OBJECT_PROXY (object);
   const gchar *ret;
-  g_mutex_lock (proxy->priv->lock);
+  g_mutex_lock (&proxy->priv->lock);
   ret = proxy->priv->object_path;
-  g_mutex_unlock (proxy->priv->lock);
+  g_mutex_unlock (&proxy->priv->lock);
   return ret;
 }
 
@@ -217,9 +216,9 @@ g_dbus_object_proxy_get_connection (GDBusObjectProxy *proxy)
 {
   GDBusConnection *ret;
   g_return_val_if_fail (G_IS_DBUS_OBJECT_PROXY (proxy), NULL);
-  g_mutex_lock (proxy->priv->lock);
+  g_mutex_lock (&proxy->priv->lock);
   ret = proxy->priv->connection;
-  g_mutex_unlock (proxy->priv->lock);
+  g_mutex_unlock (&proxy->priv->lock);
   return ret;
 }
 
@@ -233,11 +232,11 @@ g_dbus_object_proxy_get_interface (GDBusObject *object,
   g_return_val_if_fail (G_IS_DBUS_OBJECT_PROXY (proxy), NULL);
   g_return_val_if_fail (g_dbus_is_interface_name (interface_name), NULL);
 
-  g_mutex_lock (proxy->priv->lock);
+  g_mutex_lock (&proxy->priv->lock);
   ret = g_hash_table_lookup (proxy->priv->map_name_to_iface, interface_name);
   if (ret != NULL)
     g_object_ref (ret);
-  g_mutex_unlock (proxy->priv->lock);
+  g_mutex_unlock (&proxy->priv->lock);
 
   return (GDBusInterface *) ret; /* TODO: proper cast */
 }
@@ -252,10 +251,10 @@ g_dbus_object_proxy_get_interfaces (GDBusObject *object)
 
   ret = NULL;
 
-  g_mutex_lock (proxy->priv->lock);
+  g_mutex_lock (&proxy->priv->lock);
   ret = g_hash_table_get_values (proxy->priv->map_name_to_iface);
   g_list_foreach (ret, (GFunc) g_object_ref, NULL);
-  g_mutex_unlock (proxy->priv->lock);
+  g_mutex_unlock (&proxy->priv->lock);
 
   return ret;
 }
@@ -296,7 +295,7 @@ _g_dbus_object_proxy_add_interface (GDBusObjectProxy *proxy,
   g_return_if_fail (G_IS_DBUS_OBJECT_PROXY (proxy));
   g_return_if_fail (G_IS_DBUS_PROXY (interface_proxy));
 
-  g_mutex_lock (proxy->priv->lock);
+  g_mutex_lock (&proxy->priv->lock);
 
   interface_name = g_dbus_proxy_get_interface_name (interface_proxy);
   interface_proxy_to_remove = g_hash_table_lookup (proxy->priv->map_name_to_iface, interface_name);
@@ -310,7 +309,7 @@ _g_dbus_object_proxy_add_interface (GDBusObjectProxy *proxy,
                        g_object_ref (interface_proxy));
   g_object_ref (interface_proxy);
 
-  g_mutex_unlock (proxy->priv->lock);
+  g_mutex_unlock (&proxy->priv->lock);
 
   if (interface_proxy_to_remove != NULL)
     {
@@ -331,20 +330,20 @@ _g_dbus_object_proxy_remove_interface (GDBusObjectProxy *proxy,
   g_return_if_fail (G_IS_DBUS_OBJECT_PROXY (proxy));
   g_return_if_fail (g_dbus_is_interface_name (interface_name));
 
-  g_mutex_lock (proxy->priv->lock);
+  g_mutex_lock (&proxy->priv->lock);
 
   interface_proxy = g_hash_table_lookup (proxy->priv->map_name_to_iface, interface_name);
   if (interface_proxy != NULL)
     {
       g_object_ref (interface_proxy);
       g_warn_if_fail (g_hash_table_remove (proxy->priv->map_name_to_iface, interface_name));
-      g_mutex_unlock (proxy->priv->lock);
+      g_mutex_unlock (&proxy->priv->lock);
       g_signal_emit_by_name (proxy, "interface-removed", interface_proxy);
       g_object_unref (interface_proxy);
     }
   else
     {
-      g_mutex_unlock (proxy->priv->lock);
+      g_mutex_unlock (&proxy->priv->lock);
     }
 }