From a471a2df1322064658171ddb5984977d70c10298 Mon Sep 17 00:00:00 2001
From: Julian Bouzas <julian.bouzas@collabora.com>
Date: Tue, 18 Jun 2019 10:18:21 -0400
Subject: [PATCH] proxy: remove unneeded core reference

---
 lib/wp/core.c                 |  1 -
 lib/wp/core.h                 |  3 ---
 lib/wp/proxy-node.c           |  5 ++--
 lib/wp/proxy-node.h           |  4 +--
 lib/wp/proxy-port.c           |  5 ++--
 lib/wp/proxy-port.h           |  4 +--
 lib/wp/proxy.c                | 50 -----------------------------------
 lib/wp/proxy.h                |  2 --
 modules/module-pipewire.c     | 12 ++-------
 modules/module-pw-alsa-udev.c | 10 ++-----
 10 files changed, 12 insertions(+), 84 deletions(-)

diff --git a/lib/wp/core.c b/lib/wp/core.c
index 4a16bf47..f6610bc4 100644
--- a/lib/wp/core.c
+++ b/lib/wp/core.c
@@ -220,5 +220,4 @@ G_DEFINE_QUARK (endpoint, wp_global_endpoint)
 G_DEFINE_QUARK (factory, wp_global_factory)
 G_DEFINE_QUARK (module, wp_global_module)
 G_DEFINE_QUARK (policy-manager, wp_global_policy_manager)
-G_DEFINE_QUARK (proxy, wp_global_proxy)
 G_DEFINE_QUARK (remote-pipewire, wp_global_remote_pipewire)
diff --git a/lib/wp/core.h b/lib/wp/core.h
index 4e20bb97..d647cfa5 100644
--- a/lib/wp/core.h
+++ b/lib/wp/core.h
@@ -46,9 +46,6 @@ GQuark wp_global_module_quark (void);
 #define WP_GLOBAL_POLICY_MANAGER (wp_global_policy_manager_quark ())
 GQuark wp_global_policy_manager_quark (void);
 
-#define WP_GLOBAL_PROXY (wp_global_proxy_quark ())
-GQuark wp_global_proxy_quark (void);
-
 /**
  * WP_GLOBAL_REMOTE_PIPEWIRE:
  * The key to access the #WpRemote global object that maintains
diff --git a/lib/wp/proxy-node.c b/lib/wp/proxy-node.c
index 766e5c2b..5ca2ce21 100644
--- a/lib/wp/proxy-node.c
+++ b/lib/wp/proxy-node.c
@@ -104,12 +104,11 @@ wp_proxy_node_class_init (WpProxyNodeClass * klass)
 }
 
 void
-wp_proxy_node_new (WpCore *core, gpointer proxy,
-    GAsyncReadyCallback callback, gpointer user_data)
+wp_proxy_node_new (gpointer proxy, GAsyncReadyCallback callback,
+    gpointer user_data)
 {
   g_async_initable_new_async (
       WP_TYPE_PROXY_NODE, G_PRIORITY_DEFAULT, NULL, callback, user_data,
-      "core", (gpointer) core,
       "pw-proxy", proxy,
       NULL);
 }
diff --git a/lib/wp/proxy-node.h b/lib/wp/proxy-node.h
index 8ba4e69b..67db9d57 100644
--- a/lib/wp/proxy-node.h
+++ b/lib/wp/proxy-node.h
@@ -17,8 +17,8 @@ G_BEGIN_DECLS
 #define WP_TYPE_PROXY_NODE (wp_proxy_node_get_type ())
 G_DECLARE_FINAL_TYPE (WpProxyNode, wp_proxy_node, WP, PROXY_NODE, WpProxy)
 
-void wp_proxy_node_new (WpCore *core, gpointer proxy,
-    GAsyncReadyCallback callback, gpointer user_data);
+void wp_proxy_node_new (gpointer proxy, GAsyncReadyCallback callback,
+    gpointer user_data);
 WpProxyNode *wp_proxy_node_new_finish(GObject *initable, GAsyncResult *res,
     GError **error);
 
diff --git a/lib/wp/proxy-port.c b/lib/wp/proxy-port.c
index ec495646..2c344beb 100644
--- a/lib/wp/proxy-port.c
+++ b/lib/wp/proxy-port.c
@@ -138,12 +138,11 @@ wp_proxy_port_class_init (WpProxyPortClass * klass)
 }
 
 void
-wp_proxy_port_new (WpCore *core, gpointer proxy,
-    GAsyncReadyCallback callback, gpointer user_data)
+wp_proxy_port_new (gpointer proxy, GAsyncReadyCallback callback,
+    gpointer user_data)
 {
   g_async_initable_new_async (
       WP_TYPE_PROXY_PORT, G_PRIORITY_DEFAULT, NULL, callback, user_data,
-      "core", (gpointer) core,
       "pw-proxy", proxy,
       NULL);
 }
diff --git a/lib/wp/proxy-port.h b/lib/wp/proxy-port.h
index 0c38ecbb..c8b9e173 100644
--- a/lib/wp/proxy-port.h
+++ b/lib/wp/proxy-port.h
@@ -17,8 +17,8 @@ G_BEGIN_DECLS
 #define WP_TYPE_PROXY_PORT (wp_proxy_port_get_type ())
 G_DECLARE_FINAL_TYPE (WpProxyPort, wp_proxy_port, WP, PROXY_PORT, WpProxy)
 
-void wp_proxy_port_new (WpCore *core, gpointer proxy,
-    GAsyncReadyCallback callback, gpointer user_data);
+void wp_proxy_port_new (gpointer proxy, GAsyncReadyCallback callback,
+    gpointer user_data);
 WpProxyPort *wp_proxy_port_new_finish(GObject *initable, GAsyncResult *res,
     GError **error);
 
diff --git a/lib/wp/proxy.c b/lib/wp/proxy.c
index a35e33aa..042d5284 100644
--- a/lib/wp/proxy.c
+++ b/lib/wp/proxy.c
@@ -13,9 +13,6 @@
 typedef struct _WpProxyPrivate WpProxyPrivate;
 struct _WpProxyPrivate
 {
-  /* The core */
-  GWeakRef core;
-
   /* The proxy  */
   struct pw_proxy *proxy;
 
@@ -28,7 +25,6 @@ struct _WpProxyPrivate
 
 enum {
   PROP_0,
-  PROP_CORE,
   PROP_PROXY,
 };
 
@@ -50,17 +46,12 @@ static void
 proxy_event_destroy (void *data)
 {
   WpProxyPrivate *self = wp_proxy_get_instance_private (WP_PROXY(data));
-  g_autoptr (WpCore) core = g_weak_ref_get (&self->core);
 
   /* Emit the destroy signal */
   g_signal_emit (data, wp_proxy_signals[SIGNAL_DESTROYED], 0);
 
   /* Set the proxy to NULL */
   self->proxy = NULL;
-
-  /* Remove the proxy from core */
-  if (core)
-    wp_core_remove_global (core, WP_GLOBAL_PROXY, data);
 }
 
 static void
@@ -103,8 +94,6 @@ wp_proxy_finalize (GObject * object)
     self->proxy = NULL;
   }
 
-  g_weak_ref_clear (&self->core);
-
   G_OBJECT_CLASS (wp_proxy_parent_class)->finalize (object);
 }
 
@@ -115,9 +104,6 @@ wp_proxy_set_property (GObject * object, guint property_id,
   WpProxyPrivate *self = wp_proxy_get_instance_private (WP_PROXY(object));
 
   switch (property_id) {
-  case PROP_CORE:
-    g_weak_ref_set (&self->core, g_value_get_object (value));
-    break;
   case PROP_PROXY:
     self->proxy = g_value_get_pointer (value);
     break;
@@ -134,9 +120,6 @@ wp_proxy_get_property (GObject * object, guint property_id, GValue * value,
   WpProxyPrivate *self = wp_proxy_get_instance_private (WP_PROXY(object));
 
   switch (property_id) {
-  case PROP_CORE:
-    g_value_take_object (value, g_weak_ref_get (&self->core));
-    break;
   case PROP_PROXY:
     g_value_set_pointer (value, self->proxy);
     break;
@@ -183,8 +166,6 @@ wp_proxy_async_initable_init (gpointer iface, gpointer iface_data)
 static void
 wp_proxy_init (WpProxy * self)
 {
-  WpProxyPrivate *priv = wp_proxy_get_instance_private (self);
-  g_weak_ref_init (&priv->core, NULL);
 }
 
 static void
@@ -197,10 +178,6 @@ wp_proxy_class_init (WpProxyClass * klass)
   object_class->set_property = wp_proxy_set_property;
 
   /* Install the properties */
-  g_object_class_install_property (object_class, PROP_CORE,
-      g_param_spec_object ("core", "core", "The wireplumber core",
-      WP_TYPE_CORE,
-      G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (object_class, PROP_PROXY,
       g_param_spec_pointer ("pw-proxy", "pw-proxy", "The pipewire proxy",
       G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS));
@@ -212,33 +189,6 @@ wp_proxy_class_init (WpProxyClass * klass)
     g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
 }
 
-void
-wp_proxy_register(WpProxy * self)
-{
-  WpProxyPrivate *priv;
-  g_autoptr (WpCore) core = NULL;
-
-  g_return_if_fail (WP_IS_PROXY (self));
-
-  priv = wp_proxy_get_instance_private (self);
-  core = g_weak_ref_get (&priv->core);
-  g_return_if_fail (core != NULL);
-
-  wp_core_register_global (core, WP_GLOBAL_PROXY, g_object_ref (self),
-      g_object_unref);
-}
-
-WpCore *
-wp_proxy_get_core (WpProxy * self)
-{
-  WpProxyPrivate *priv;
-
-  g_return_val_if_fail (WP_IS_PROXY (self), NULL);
-
-  priv = wp_proxy_get_instance_private (self);
-  return g_weak_ref_get (&priv->core);
-}
-
 gpointer
 wp_proxy_get_pw_proxy (WpProxy * self)
 {
diff --git a/lib/wp/proxy.h b/lib/wp/proxy.h
index 6ef85489..f3f89483 100644
--- a/lib/wp/proxy.h
+++ b/lib/wp/proxy.h
@@ -27,8 +27,6 @@ struct _WpProxyClass
   void (*destroyed)(WpProxy *wp_proxy);
 };
 
-void wp_proxy_register (WpProxy * self);
-WpCore *wp_proxy_get_core (WpProxy * self);
 gpointer wp_proxy_get_pw_proxy (WpProxy * self);
 
 G_END_DECLS
diff --git a/modules/module-pipewire.c b/modules/module-pipewire.c
index 97c6bc74..52cee54f 100644
--- a/modules/module-pipewire.c
+++ b/modules/module-pipewire.c
@@ -103,9 +103,6 @@ proxy_node_created(GObject *initable, GAsyncResult *res, gpointer d)
   if (!proxy_node)
     return;
 
-  /* Register the proxy node */
-  wp_proxy_register(WP_PROXY(proxy_node));
-
   /* Get the client node info */
   ei = g_hash_table_lookup(data->client_nodes_info,
       GINT_TO_POINTER(pi->node_id));
@@ -146,7 +143,6 @@ proxy_port_created(GObject *initable, GAsyncResult *res, gpointer d)
 {
   struct proxy_info *pi = d;
   const struct module_data *data = pi->data;
-  g_autoptr (WpCore) core = wp_module_get_core (data->module);
   WpProxyPort *proxy_port = NULL;
   struct pw_proxy *proxy = NULL;
 
@@ -155,9 +151,6 @@ proxy_port_created(GObject *initable, GAsyncResult *res, gpointer d)
   if (!proxy_port)
     return;
 
-  /* Register the proxy port */
-  wp_proxy_register(WP_PROXY(proxy_port));
-
   /* Forward the proxy port */
   pi->proxy_port = proxy_port;
 
@@ -168,7 +161,7 @@ proxy_port_created(GObject *initable, GAsyncResult *res, gpointer d)
     return;
 
   /* Create the proxy node asynchronically */
-  wp_proxy_node_new(core, proxy, proxy_node_created, pi);
+  wp_proxy_node_new(proxy, proxy_node_created, pi);
 }
 
 static void
@@ -240,7 +233,6 @@ static void
 handle_port(struct module_data *data, uint32_t id, uint32_t parent_id,
             const struct spa_dict *props)
 {
-  g_autoptr (WpCore) core = wp_module_get_core (data->module);
   struct proxy_info *pi = NULL;
   struct pw_proxy *proxy = NULL;
 
@@ -262,7 +254,7 @@ handle_port(struct module_data *data, uint32_t id, uint32_t parent_id,
   pi->proxy_port = NULL;
 
   /* Create the proxy port asynchronically */
-  wp_proxy_port_new(core, proxy, proxy_port_created, pi);
+  wp_proxy_port_new(proxy, proxy_port_created, pi);
 }
 
 static void
diff --git a/modules/module-pw-alsa-udev.c b/modules/module-pw-alsa-udev.c
index 6b26132b..53ccf243 100644
--- a/modules/module-pw-alsa-udev.c
+++ b/modules/module-pw-alsa-udev.c
@@ -96,9 +96,6 @@ proxy_node_created(GObject *initable, GAsyncResult *res, gpointer data)
   if (!proxy_node)
     return;
 
-  /* Register the proxy node */
-  wp_proxy_register(WP_PROXY(proxy_node));
-
   /* Get the alsa node info */
   ei = g_hash_table_lookup(impl->alsa_nodes_info, GINT_TO_POINTER(pi->node_id));
   if (!ei)
@@ -145,9 +142,6 @@ proxy_port_created(GObject *initable, GAsyncResult *res, gpointer data)
   if (!proxy_port)
     return;
 
-  /* Register the proxy port */
-  wp_proxy_register(WP_PROXY(proxy_port));
-
   /* Forward the proxy port */
   pi->proxy_port = proxy_port;
 
@@ -158,7 +152,7 @@ proxy_port_created(GObject *initable, GAsyncResult *res, gpointer data)
     return;
 
   /* Create the proxy node asynchronically */
-  wp_proxy_node_new(impl->core, proxy, proxy_node_created, pi);
+  wp_proxy_node_new(proxy, proxy_node_created, pi);
 }
 
 static void
@@ -221,7 +215,7 @@ handle_port(struct impl *impl, uint32_t id, uint32_t parent_id,
   pi->proxy_port = NULL;
 
   /* Create the proxy port asynchronically */
-  wp_proxy_port_new(impl->core, proxy, proxy_port_created, pi);
+  wp_proxy_port_new(proxy, proxy_port_created, pi);
 }
 
 static void
-- 
GitLab