summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--ChangeLog.pre-2-010
-rw-r--r--ChangeLog.pre-2-1010
-rw-r--r--ChangeLog.pre-2-1210
-rw-r--r--ChangeLog.pre-2-210
-rw-r--r--ChangeLog.pre-2-410
-rw-r--r--ChangeLog.pre-2-610
-rw-r--r--ChangeLog.pre-2-810
-rw-r--r--docs/reference/glib/tmpl/main.sgml2
-rw-r--r--glib/giochannel.h4
-rw-r--r--glib/giounix.c4
-rw-r--r--glib/giowin32.c4
-rw-r--r--glib/glib-object.h1
-rw-r--r--glib/gmain.c13
-rw-r--r--glib/gmain.h11
15 files changed, 109 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index c3bd76ab2..c7c8b837f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Mon Aug 27 14:56:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * glib/gmain.h: Add closure_marshal/closure_callback
+ fields to GSourceFuncs for use by g_source_set_closure().
+
+ * glib/gmain.c glib/giounix.c glib/giowin32.c
+ glib/gmain.h: Export the SourceFuncs vtables so GObject
+ can use them to figure out closure callbacks/marshallers
+ for the default source types.
+
Sun Sep 2 13:05:53 2001 Owen Taylor <otaylor@redhat.com>
* glib/gstrfuncs.c (g_strchomp): Replace some uses
diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0
index c3bd76ab2..c7c8b837f 100644
--- a/ChangeLog.pre-2-0
+++ b/ChangeLog.pre-2-0
@@ -1,3 +1,13 @@
+Mon Aug 27 14:56:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * glib/gmain.h: Add closure_marshal/closure_callback
+ fields to GSourceFuncs for use by g_source_set_closure().
+
+ * glib/gmain.c glib/giounix.c glib/giowin32.c
+ glib/gmain.h: Export the SourceFuncs vtables so GObject
+ can use them to figure out closure callbacks/marshallers
+ for the default source types.
+
Sun Sep 2 13:05:53 2001 Owen Taylor <otaylor@redhat.com>
* glib/gstrfuncs.c (g_strchomp): Replace some uses
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index c3bd76ab2..c7c8b837f 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,13 @@
+Mon Aug 27 14:56:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * glib/gmain.h: Add closure_marshal/closure_callback
+ fields to GSourceFuncs for use by g_source_set_closure().
+
+ * glib/gmain.c glib/giounix.c glib/giowin32.c
+ glib/gmain.h: Export the SourceFuncs vtables so GObject
+ can use them to figure out closure callbacks/marshallers
+ for the default source types.
+
Sun Sep 2 13:05:53 2001 Owen Taylor <otaylor@redhat.com>
* glib/gstrfuncs.c (g_strchomp): Replace some uses
diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12
index c3bd76ab2..c7c8b837f 100644
--- a/ChangeLog.pre-2-12
+++ b/ChangeLog.pre-2-12
@@ -1,3 +1,13 @@
+Mon Aug 27 14:56:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * glib/gmain.h: Add closure_marshal/closure_callback
+ fields to GSourceFuncs for use by g_source_set_closure().
+
+ * glib/gmain.c glib/giounix.c glib/giowin32.c
+ glib/gmain.h: Export the SourceFuncs vtables so GObject
+ can use them to figure out closure callbacks/marshallers
+ for the default source types.
+
Sun Sep 2 13:05:53 2001 Owen Taylor <otaylor@redhat.com>
* glib/gstrfuncs.c (g_strchomp): Replace some uses
diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2
index c3bd76ab2..c7c8b837f 100644
--- a/ChangeLog.pre-2-2
+++ b/ChangeLog.pre-2-2
@@ -1,3 +1,13 @@
+Mon Aug 27 14:56:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * glib/gmain.h: Add closure_marshal/closure_callback
+ fields to GSourceFuncs for use by g_source_set_closure().
+
+ * glib/gmain.c glib/giounix.c glib/giowin32.c
+ glib/gmain.h: Export the SourceFuncs vtables so GObject
+ can use them to figure out closure callbacks/marshallers
+ for the default source types.
+
Sun Sep 2 13:05:53 2001 Owen Taylor <otaylor@redhat.com>
* glib/gstrfuncs.c (g_strchomp): Replace some uses
diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4
index c3bd76ab2..c7c8b837f 100644
--- a/ChangeLog.pre-2-4
+++ b/ChangeLog.pre-2-4
@@ -1,3 +1,13 @@
+Mon Aug 27 14:56:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * glib/gmain.h: Add closure_marshal/closure_callback
+ fields to GSourceFuncs for use by g_source_set_closure().
+
+ * glib/gmain.c glib/giounix.c glib/giowin32.c
+ glib/gmain.h: Export the SourceFuncs vtables so GObject
+ can use them to figure out closure callbacks/marshallers
+ for the default source types.
+
Sun Sep 2 13:05:53 2001 Owen Taylor <otaylor@redhat.com>
* glib/gstrfuncs.c (g_strchomp): Replace some uses
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index c3bd76ab2..c7c8b837f 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,3 +1,13 @@
+Mon Aug 27 14:56:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * glib/gmain.h: Add closure_marshal/closure_callback
+ fields to GSourceFuncs for use by g_source_set_closure().
+
+ * glib/gmain.c glib/giounix.c glib/giowin32.c
+ glib/gmain.h: Export the SourceFuncs vtables so GObject
+ can use them to figure out closure callbacks/marshallers
+ for the default source types.
+
Sun Sep 2 13:05:53 2001 Owen Taylor <otaylor@redhat.com>
* glib/gstrfuncs.c (g_strchomp): Replace some uses
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index c3bd76ab2..c7c8b837f 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,3 +1,13 @@
+Mon Aug 27 14:56:12 2001 Owen Taylor <otaylor@redhat.com>
+
+ * glib/gmain.h: Add closure_marshal/closure_callback
+ fields to GSourceFuncs for use by g_source_set_closure().
+
+ * glib/gmain.c glib/giounix.c glib/giowin32.c
+ glib/gmain.h: Export the SourceFuncs vtables so GObject
+ can use them to figure out closure callbacks/marshallers
+ for the default source types.
+
Sun Sep 2 13:05:53 2001 Owen Taylor <otaylor@redhat.com>
* glib/gstrfuncs.c (g_strchomp): Replace some uses
diff --git a/docs/reference/glib/tmpl/main.sgml b/docs/reference/glib/tmpl/main.sgml
index f754c2d4b..cdc3075cc 100644
--- a/docs/reference/glib/tmpl/main.sgml
+++ b/docs/reference/glib/tmpl/main.sgml
@@ -636,6 +636,8 @@ the required condition has been met, and returns TRUE if so.
@check:
@dispatch:
@finalize:
+@closure_callback:
+@closure_marshal:
<!-- ##### STRUCT GSourceCallbackFuncs ##### -->
<para>
diff --git a/glib/giochannel.h b/glib/giochannel.h
index 3a89852c8..be6b8aac8 100644
--- a/glib/giochannel.h
+++ b/glib/giochannel.h
@@ -284,6 +284,10 @@ GIOChannelError g_io_channel_error_from_errno (gint en);
GIOChannel* g_io_channel_unix_new (int fd);
gint g_io_channel_unix_get_fd (GIOChannel *channel);
+
+/* Hook for GClosure / GSource integration. Don't touch */
+GLIB_VAR GSourceFuncs g_io_watch_funcs;
+
#ifdef G_OS_WIN32
#define G_WIN32_MSG_HANDLE 19981206
diff --git a/glib/giounix.c b/glib/giounix.c
index fa54b86b1..c2db911a8 100644
--- a/glib/giounix.c
+++ b/glib/giounix.c
@@ -95,7 +95,7 @@ static gboolean g_io_unix_dispatch (GSource *source,
gpointer user_data);
static void g_io_unix_finalize (GSource *source);
-GSourceFuncs unix_watch_funcs = {
+GSourceFuncs g_io_watch_funcs = {
g_io_unix_prepare,
g_io_unix_check,
g_io_unix_dispatch,
@@ -324,7 +324,7 @@ g_io_unix_create_watch (GIOChannel *channel,
GIOUnixWatch *watch;
- source = g_source_new (&unix_watch_funcs, sizeof (GIOUnixWatch));
+ source = g_source_new (&g_io_watch_funcs, sizeof (GIOUnixWatch));
watch = (GIOUnixWatch *)source;
watch->channel = channel;
diff --git a/glib/giowin32.c b/glib/giowin32.c
index 84e00099e..0134a95a7 100644
--- a/glib/giowin32.c
+++ b/glib/giowin32.c
@@ -595,7 +595,7 @@ g_io_win32_finalize (GSource *source)
g_io_channel_unref (watch->channel);
}
-static GSourceFuncs win32_watch_funcs = {
+GSourceFuncs g_io_watch_funcs = {
g_io_win32_prepare,
g_io_win32_check,
g_io_win32_dispatch,
@@ -611,7 +611,7 @@ g_io_win32_create_watch (GIOChannel *channel,
GIOWin32Watch *watch;
GSource *source;
- source = g_source_new (&win32_watch_funcs, sizeof (GIOWin32Watch));
+ source = g_source_new (&g_io_watch_funcs, sizeof (GIOWin32Watch));
watch = (GIOWin32Watch *)source;
watch->channel = channel;
diff --git a/glib/glib-object.h b/glib/glib-object.h
index 98e3dfebc..dfde3d084 100644
--- a/glib/glib-object.h
+++ b/glib/glib-object.h
@@ -27,6 +27,7 @@
#include <gobject/gparam.h>
#include <gobject/gparamspecs.h>
#include <gobject/gsignal.h>
+#include <gobject/gsourceclosure.h>
#include <gobject/gtype.h>
#include <gobject/gtypemodule.h>
#include <gobject/gtypeplugin.h>
diff --git a/glib/gmain.c b/glib/gmain.c
index 35be1a42a..2f11b1a39 100644
--- a/glib/gmain.c
+++ b/glib/gmain.c
@@ -220,7 +220,7 @@ static gboolean g_idle_dispatch (GSource *source,
G_LOCK_DEFINE_STATIC (main_loop);
static GMainContext *default_main_context;
-static GSourceFuncs timeout_funcs =
+GSourceFuncs g_timeout_funcs =
{
g_timeout_prepare,
g_timeout_check,
@@ -228,7 +228,7 @@ static GSourceFuncs timeout_funcs =
NULL
};
-static GSourceFuncs idle_funcs =
+GSourceFuncs g_idle_funcs =
{
g_idle_prepare,
g_idle_check,
@@ -1057,6 +1057,7 @@ g_source_callback_unref (gpointer cb_data)
static void
g_source_callback_get (gpointer cb_data,
+ GSource *source,
GSourceFunc *func,
gpointer *data)
{
@@ -1588,7 +1589,7 @@ g_main_dispatch (GMainContext *context)
UNLOCK_CONTEXT (context);
if (cb_funcs)
- cb_funcs->get (cb_data, &callback, &user_data);
+ cb_funcs->get (cb_data, source, &callback, &user_data);
need_destroy = ! dispatch (source,
callback,
@@ -2966,7 +2967,7 @@ g_timeout_dispatch (GSource *source,
GSource *
g_timeout_source_new (guint interval)
{
- GSource *source = g_source_new (&timeout_funcs, sizeof (GTimeoutSource));
+ GSource *source = g_source_new (&g_timeout_funcs, sizeof (GTimeoutSource));
GTimeoutSource *timeout_source = (GTimeoutSource *)source;
GTimeVal current_time;
@@ -3104,7 +3105,7 @@ g_idle_dispatch (GSource *source,
GSource *
g_idle_source_new (void)
{
- return g_source_new (&idle_funcs, sizeof (GSource));
+ return g_source_new (&g_idle_funcs, sizeof (GSource));
}
/**
@@ -3175,6 +3176,6 @@ g_idle_add (GSourceFunc function,
gboolean
g_idle_remove_by_data (gpointer data)
{
- return g_source_remove_by_funcs_user_data (&idle_funcs, data);
+ return g_source_remove_by_funcs_user_data (&g_idle_funcs, data);
}
diff --git a/glib/gmain.h b/glib/gmain.h
index 5853c10da..cd9528887 100644
--- a/glib/gmain.h
+++ b/glib/gmain.h
@@ -59,10 +59,13 @@ struct _GSourceCallbackFuncs
void (*ref) (gpointer cb_data);
void (*unref) (gpointer cb_data);
void (*get) (gpointer cb_data,
+ GSource *source,
GSourceFunc *func,
gpointer *data);
};
+typedef void (*GSourceDummyMarshal) (void);
+
struct _GSourceFuncs
{
gboolean (*prepare) (GSource *source,
@@ -72,6 +75,10 @@ struct _GSourceFuncs
GSourceFunc callback,
gpointer user_data);
void (*finalize) (GSource *source); /* Can be NULL */
+
+ /* For use by g_source_set_closure */
+ GSourceFunc closure_callback;
+ GSourceDummyMarshal closure_marshal; /* Really is of type GClosureMarshal */
};
/* Any definitions using GPollFD or GPollFunc are primarily
@@ -286,6 +293,10 @@ guint g_idle_add_full (gint priority,
GDestroyNotify notify);
gboolean g_idle_remove_by_data (gpointer data);
+/* Hook for GClosure / GSource integration. Don't touch */
+GLIB_VAR GSourceFuncs g_timeout_funcs;
+GLIB_VAR GSourceFuncs g_idle_funcs;
+
#ifdef G_OS_WIN32
/* This is used to add polling for Windows messages. GDK (GTK+) programs