glib r7766 - in trunk: docs/reference/gio gio
- From: ryanl svn gnome org
- To: svn-commits-list gnome org
- Subject: glib r7766 - in trunk: docs/reference/gio gio
- Date: Mon, 5 Jan 2009 06:57:16 +0000 (UTC)
Author: ryanl
Date: Mon Jan 5 06:57:16 2009
New Revision: 7766
URL: http://svn.gnome.org/viewvc/glib?rev=7766&view=rev
Log:
2009-01-05 Ryan Lortie <desrt desrt ca>
* gio.symbols:
* ../docs/reference/gio/gio-sections.txt:
* gsimpleasyncresult.h:
* gsimpleasyncresult.c: Add g_simple_async_result_is_valid().
Implementation by Dan Winship. Closes #566170.
Modified:
trunk/docs/reference/gio/gio-sections.txt
trunk/gio/ChangeLog
trunk/gio/gio.symbols
trunk/gio/gsimpleasyncresult.c
trunk/gio/gsimpleasyncresult.h
Modified: trunk/docs/reference/gio/gio-sections.txt
==============================================================================
--- trunk/docs/reference/gio/gio-sections.txt (original)
+++ trunk/docs/reference/gio/gio-sections.txt Mon Jan 5 06:57:16 2009
@@ -1002,6 +1002,7 @@
g_simple_async_result_set_op_res_gboolean
g_simple_async_result_get_op_res_gboolean
g_simple_async_result_get_source_tag
+g_simple_async_result_is_valid
g_simple_async_result_set_handle_cancellation
g_simple_async_result_complete
g_simple_async_result_complete_in_idle
Modified: trunk/gio/gio.symbols
==============================================================================
--- trunk/gio/gio.symbols (original)
+++ trunk/gio/gio.symbols Mon Jan 5 06:57:16 2009
@@ -634,6 +634,7 @@
g_simple_async_result_propagate_error
g_simple_async_result_set_error
g_simple_async_result_set_error_va
+g_simple_async_result_is_valid
g_simple_async_report_error_in_idle
g_simple_async_report_gerror_in_idle
#endif
Modified: trunk/gio/gsimpleasyncresult.c
==============================================================================
--- trunk/gio/gsimpleasyncresult.c (original)
+++ trunk/gio/gsimpleasyncresult.c Mon Jan 5 06:57:16 2009
@@ -693,6 +693,48 @@
}
/**
+ * g_simple_async_result_is_valid:
+ * @result: the #GAsyncResult passed to the _finish function.
+ * @source: the #GObject passed to the _finish function.
+ * @source_tag: the asynchronous function.
+ *
+ * Ensures that the data passed to the _finish function of an async
+ * operation is consistent. Three checks are performed.
+ *
+ * First, @result is checked to ensure that it is really a
+ * #GSimpleAsyncResult. Second, @source is checked to ensure that it
+ * matches the source object of @result. Third, @source_tag is
+ * checked to ensure that it is equal to the source_tag argument given
+ * to g_simple_async_result_new() (which, by convention, is a pointer
+ * to the _async function corresponding to the _finish function from
+ * which this function is called).
+ *
+ * Returns: #TRUE if all checks passed or #FALSE if any failed.
+ **/
+gboolean
+g_simple_async_result_is_valid (GAsyncResult *result,
+ GObject *source,
+ gpointer source_tag)
+{
+ GSimpleAsyncResult *simple;
+ GObject *cmp_source;
+
+ if (!G_IS_SIMPLE_ASYNC_RESULT (result))
+ return FALSE;
+ simple = (GSimpleAsyncResult *)result;
+
+ cmp_source = g_async_result_get_source_object (result);
+ if (cmp_source != source)
+ {
+ g_object_unref (cmp_source);
+ return FALSE;
+ }
+ g_object_unref (cmp_source);
+
+ return source_tag == g_simple_async_result_get_source_tag (simple);
+}
+
+/**
* g_simple_async_report_error_in_idle:
* @object: a #GObject.
* @callback: a #GAsyncReadyCallback.
Modified: trunk/gio/gsimpleasyncresult.h
==============================================================================
--- trunk/gio/gsimpleasyncresult.h (original)
+++ trunk/gio/gsimpleasyncresult.h Mon Jan 5 06:57:16 2009
@@ -102,6 +102,9 @@
gint code,
const char *format,
va_list args);
+gboolean g_simple_async_result_is_valid (GAsyncResult *result,
+ GObject *source,
+ gpointer source_tag);
void g_simple_async_report_error_in_idle (GObject *object,
GAsyncReadyCallback callback,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]