projects
/
platform
/
upstream
/
glib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix minor mem leak in test case
[platform/upstream/glib.git]
/
gio
/
gnetworkservice.c
diff --git
a/gio/gnetworkservice.c
b/gio/gnetworkservice.c
index
39b78d6
..
497d6fd
100644
(file)
--- a/
gio/gnetworkservice.c
+++ b/
gio/gnetworkservice.c
@@
-15,9
+15,7
@@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General
* 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/>.
*/
#include "config.h"
*/
#include "config.h"
@@
-33,7
+31,7
@@
#include "gnetworkaddress.h"
#include "gnetworkingprivate.h"
#include "gresolver.h"
#include "gnetworkaddress.h"
#include "gnetworkingprivate.h"
#include "gresolver.h"
-#include "g
simpleasyncresult
.h"
+#include "g
task
.h"
#include "gsocketaddressenumerator.h"
#include "gsocketconnectable.h"
#include "gsrvtarget.h"
#include "gsocketaddressenumerator.h"
#include "gsocketconnectable.h"
#include "gsrvtarget.h"
@@
-93,6
+91,7
@@
static GSocketAddressEnumerator *g_network_service_connectable_enumerate
static GSocketAddressEnumerator *g_network_service_connectable_proxy_enumerate (GSocketConnectable *connectable);
G_DEFINE_TYPE_WITH_CODE (GNetworkService, g_network_service, G_TYPE_OBJECT,
static GSocketAddressEnumerator *g_network_service_connectable_proxy_enumerate (GSocketConnectable *connectable);
G_DEFINE_TYPE_WITH_CODE (GNetworkService, g_network_service, G_TYPE_OBJECT,
+ G_ADD_PRIVATE (GNetworkService)
G_IMPLEMENT_INTERFACE (G_TYPE_SOCKET_CONNECTABLE,
g_network_service_connectable_iface_init))
G_IMPLEMENT_INTERFACE (G_TYPE_SOCKET_CONNECTABLE,
g_network_service_connectable_iface_init))
@@
-117,8
+116,6
@@
g_network_service_class_init (GNetworkServiceClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (GNetworkServicePrivate));
-
gobject_class->set_property = g_network_service_set_property;
gobject_class->get_property = g_network_service_get_property;
gobject_class->finalize = g_network_service_finalize;
gobject_class->set_property = g_network_service_set_property;
gobject_class->get_property = g_network_service_get_property;
gobject_class->finalize = g_network_service_finalize;
@@
-167,8
+164,7
@@
g_network_service_connectable_iface_init (GSocketConnectableIface *connectable_i
static void
g_network_service_init (GNetworkService *srv)
{
static void
g_network_service_init (GNetworkService *srv)
{
- srv->priv = G_TYPE_INSTANCE_GET_PRIVATE (srv, G_TYPE_NETWORK_SERVICE,
- GNetworkServicePrivate);
+ srv->priv = g_network_service_get_instance_private (srv);
}
static void
}
static void
@@
-245,7
+241,7
@@
g_network_service_get_property (GObject *object,
* @protocol, and @domain. This will initially be unresolved; use the
* #GSocketConnectable interface to resolve it.
*
* @protocol, and @domain. This will initially be unresolved; use the
* #GSocketConnectable interface to resolve it.
*
- * Return
value
: (transfer full) (type GNetworkService): a new #GNetworkService
+ * Return
s
: (transfer full) (type GNetworkService): a new #GNetworkService
*
* Since: 2.22
*/
*
* Since: 2.22
*/
@@
-267,7
+263,7
@@
g_network_service_new (const gchar *service,
*
* Gets @srv's service name (eg, "ldap").
*
*
* Gets @srv's service name (eg, "ldap").
*
- * Return
value
: @srv's service name
+ * Return
s
: @srv's service name
*
* Since: 2.22
*/
*
* Since: 2.22
*/
@@
-285,7
+281,7
@@
g_network_service_get_service (GNetworkService *srv)
*
* Gets @srv's protocol name (eg, "tcp").
*
*
* Gets @srv's protocol name (eg, "tcp").
*
- * Return
value
: @srv's protocol name
+ * Return
s
: @srv's protocol name
*
* Since: 2.22
*/
*
* Since: 2.22
*/
@@
-304,7
+300,7
@@
g_network_service_get_protocol (GNetworkService *srv)
* Gets the domain that @srv serves. This might be either UTF-8 or
* ASCII-encoded, depending on what @srv was created with.
*
* Gets the domain that @srv serves. This might be either UTF-8 or
* ASCII-encoded, depending on what @srv was created with.
*
- * Return
value
: @srv's domain name
+ * Return
s
: @srv's domain name
*
* Since: 2.22
*/
*
* Since: 2.22
*/
@@
-323,7
+319,7
@@
g_network_service_get_domain (GNetworkService *srv)
* Get's the URI scheme used to resolve proxies. By default, the service name
* is used as scheme.
*
* Get's the URI scheme used to resolve proxies. By default, the service name
* is used as scheme.
*
- * Return
value
: @srv's scheme name
+ * Return
s
: @srv's scheme name
*
* Since: 2.26
*/
*
* Since: 2.26
*/
@@
-354,8
+350,7
@@
g_network_service_set_scheme (GNetworkService *srv,
{
g_return_if_fail (G_IS_NETWORK_SERVICE (srv));
{
g_return_if_fail (G_IS_NETWORK_SERVICE (srv));
- if (srv->priv->scheme)
- g_free (srv->priv->scheme);
+ g_free (srv->priv->scheme);
srv->priv->scheme = g_strdup (scheme);
g_object_notify (G_OBJECT (srv), "scheme");
srv->priv->scheme = g_strdup (scheme);
g_object_notify (G_OBJECT (srv), "scheme");
@@
-395,9
+390,6
@@
typedef struct {
GError *error;
GError *error;
- /* For async operation */
- GCancellable *cancellable;
- GSimpleAsyncResult *result;
} GNetworkServiceAddressEnumerator;
typedef struct {
} GNetworkServiceAddressEnumerator;
typedef struct {
@@
-530,13
+522,13
@@
g_network_service_address_enumerator_next (GSocketAddressEnumerator *enumerator
return ret;
}
return ret;
}
-static void next_async_resolved_targets (GObject
*source_object,
- GAsyncResult
*result,
- gpointer
user_data);
-static void next_async_have_targets (G
NetworkServiceAddressEnumerator
*srv_enum);
-static void next_async_have_address (GObject
*source_object,
- GAsyncResult
*result,
- gpointer
user_data);
+static void next_async_resolved_targets (GObject *source_object,
+ GAsyncResult *result,
+ gpointer user_data);
+static void next_async_have_targets (G
Task
*srv_enum);
+static void next_async_have_address (GObject *source_object,
+ GAsyncResult *result,
+ gpointer user_data);
static void
g_network_service_address_enumerator_next_async (GSocketAddressEnumerator *enumerator,
static void
g_network_service_address_enumerator_next_async (GSocketAddressEnumerator *enumerator,
@@
-546,15
+538,9
@@
g_network_service_address_enumerator_next_async (GSocketAddressEnumerator *enum
{
GNetworkServiceAddressEnumerator *srv_enum =
G_NETWORK_SERVICE_ADDRESS_ENUMERATOR (enumerator);
{
GNetworkServiceAddressEnumerator *srv_enum =
G_NETWORK_SERVICE_ADDRESS_ENUMERATOR (enumerator);
+ GTask *task;
- g_return_if_fail (srv_enum->result == NULL);
-
- srv_enum->result = g_simple_async_result_new (G_OBJECT (enumerator),
- callback, user_data,
- g_network_service_address_enumerator_next_async);
-
- if (cancellable)
- srv_enum->cancellable = g_object_ref (cancellable);
+ task = g_task_new (enumerator, cancellable, callback, user_data);
/* If we haven't yet resolved srv, do that */
if (!srv_enum->srv->priv->targets)
/* If we haven't yet resolved srv, do that */
if (!srv_enum->srv->priv->targets)
@@
-565,10
+551,10
@@
g_network_service_address_enumerator_next_async (GSocketAddressEnumerator *enum
srv_enum->srv->priv->domain,
cancellable,
next_async_resolved_targets,
srv_enum->srv->priv->domain,
cancellable,
next_async_resolved_targets,
-
srv_enum
);
+
task
);
}
else
}
else
- next_async_have_targets (
srv_enum
);
+ next_async_have_targets (
task
);
}
static void
}
static void
@@
-576,7
+562,8
@@
next_async_resolved_targets (GObject *source_object,
GAsyncResult *result,
gpointer user_data)
{
GAsyncResult *result,
gpointer user_data)
{
- GNetworkServiceAddressEnumerator *srv_enum = user_data;
+ GTask *task = user_data;
+ GNetworkServiceAddressEnumerator *srv_enum = g_task_get_source_object (task);
GError *error = NULL;
GList *targets;
GError *error = NULL;
GList *targets;
@@
-593,23
+580,21
@@
next_async_resolved_targets (GObject *source_object,
if (error)
{
if (error)
{
- GSimpleAsyncResult *simple = srv_enum->result;
-
- srv_enum->result = NULL;
- g_simple_async_result_take_error (simple, error);
- g_simple_async_result_complete (simple);
- g_object_unref (simple);
+ g_task_return_error (task, error);
+ g_object_unref (task);
}
else
{
srv_enum->t = srv_enum->srv->priv->targets = targets;
}
else
{
srv_enum->t = srv_enum->srv->priv->targets = targets;
- next_async_have_targets (
srv_enum
);
+ next_async_have_targets (
task
);
}
}
static void
}
}
static void
-next_async_have_targets (G
NetworkServiceAddressEnumerator *srv_enum
)
+next_async_have_targets (G
Task *task
)
{
{
+ GNetworkServiceAddressEnumerator *srv_enum = g_task_get_source_object (task);
+
/* Delegate to GNetworkAddress */
if (srv_enum->addr_enum == NULL && srv_enum->t)
{
/* Delegate to GNetworkAddress */
if (srv_enum->addr_enum == NULL && srv_enum->t)
{
@@
-631,23
+616,21
@@
next_async_have_targets (GNetworkServiceAddressEnumerator *srv_enum)
if (srv_enum->addr_enum)
{
g_socket_address_enumerator_next_async (srv_enum->addr_enum,
if (srv_enum->addr_enum)
{
g_socket_address_enumerator_next_async (srv_enum->addr_enum,
-
srv_enum->cancellable
,
+
g_task_get_cancellable (task)
,
next_async_have_address,
next_async_have_address,
-
srv_enum
);
+
task
);
}
else
{
}
else
{
- GSimpleAsyncResult *simple = srv_enum->result;
- srv_enum->result = NULL;
-
if (srv_enum->error)
{
if (srv_enum->error)
{
- g_
simple_async_result_take_error (simple
, srv_enum->error);
+ g_
task_return_error (task
, srv_enum->error);
srv_enum->error = NULL;
}
srv_enum->error = NULL;
}
+ else
+ g_task_return_pointer (task, NULL, NULL);
- g_simple_async_result_complete (simple);
- g_object_unref (simple);
+ g_object_unref (task);
}
}
}
}
@@
-656,7
+639,8
@@
next_async_have_address (GObject *source_object,
GAsyncResult *result,
gpointer user_data)
{
GAsyncResult *result,
gpointer user_data)
{
- GNetworkServiceAddressEnumerator *srv_enum = user_data;
+ GTask *task = user_data;
+ GNetworkServiceAddressEnumerator *srv_enum = g_task_get_source_object (task);
GSocketAddress *address;
GError *error = NULL;
GSocketAddress *address;
GError *error = NULL;
@@
-677,20
+661,12
@@
next_async_have_address (GObject *source_object,
g_object_unref (srv_enum->addr_enum);
srv_enum->addr_enum = NULL;
g_object_unref (srv_enum->addr_enum);
srv_enum->addr_enum = NULL;
- next_async_have_targets (
srv_enum
);
+ next_async_have_targets (
task
);
}
else
{
}
else
{
- GSimpleAsyncResult *simple = srv_enum->result;
-
- srv_enum->result = NULL;
-
- if (address)
- g_simple_async_result_set_op_res_gpointer (simple,
- address, g_object_unref);
-
- g_simple_async_result_complete (simple);
- g_object_unref (simple);
+ g_task_return_pointer (task, address, g_object_unref);
+ g_object_unref (task);
}
}
}
}
@@
-699,14
+675,7
@@
g_network_service_address_enumerator_next_finish (GSocketAddressEnumerator *enu
GAsyncResult *result,
GError **error)
{
GAsyncResult *result,
GError **error)
{
- GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result);
- GSocketAddress *sockaddr;
-
- if (g_simple_async_result_propagate_error (simple, error))
- return NULL;
-
- sockaddr = g_simple_async_result_get_op_res_gpointer (simple);
- return sockaddr ? g_object_ref (sockaddr) : NULL;
+ return g_task_propagate_pointer (G_TASK (result), error);
}
static void
}
static void
@@
-729,12
+698,6
@@
g_network_service_address_enumerator_finalize (GObject *object)
if (srv_enum->resolver)
g_object_unref (srv_enum->resolver);
if (srv_enum->resolver)
g_object_unref (srv_enum->resolver);
- if (srv_enum->result)
- g_object_unref (srv_enum->result);
-
- if (srv_enum->cancellable)
- g_object_unref (srv_enum->cancellable);
-
if (srv_enum->error)
g_error_free (srv_enum->error);
if (srv_enum->error)
g_error_free (srv_enum->error);