avoid unneccessary extra hook referencing (the explicit hook referencing

Sat Jan  2 02:20:59 1999  Tim Janik  <timj@gtk.org>

        * ghook.c:
        (g_hook_list_invoke):
        (g_hook_list_invoke_check):
        (g_hook_list_marshal_check):
        (g_hook_list_marshal): avoid unneccessary extra hook referencing (the
        explicit hook referencing became unneccessarry with my changes from
        Mon Dec 21 21:48:29 1998).

        * gmain.c (g_main_iterate): fixed reference counting leaks with
        premature loop aborts.

Fri Jan  1 22:47:44 1999  Tim Janik  <timj@gtk.org>

        * gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
        as G_TOKEN_IDENTIFIER.
This commit is contained in:
Tim Janik 1999-01-02 01:32:37 +00:00 committed by Tim Janik
parent 0e2f565f14
commit 00e064d2af
14 changed files with 314 additions and 218 deletions

View File

@ -1,3 +1,21 @@
Sat Jan 2 02:20:59 1999 Tim Janik <timj@gtk.org>
* ghook.c:
(g_hook_list_invoke):
(g_hook_list_invoke_check):
(g_hook_list_marshal_check):
(g_hook_list_marshal): avoid unneccessary extra hook referencing (the
explicit hook referencing became unneccessarry with my changes from
Mon Dec 21 21:48:29 1998).
* gmain.c (g_main_iterate): fixed reference counting leaks with
premature loop aborts.
Fri Jan 1 22:47:44 1999 Tim Janik <timj@gtk.org>
* gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
as G_TOKEN_IDENTIFIER.
Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com> Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com>
* configure.in, glib.h: * configure.in, glib.h:

View File

@ -1,3 +1,21 @@
Sat Jan 2 02:20:59 1999 Tim Janik <timj@gtk.org>
* ghook.c:
(g_hook_list_invoke):
(g_hook_list_invoke_check):
(g_hook_list_marshal_check):
(g_hook_list_marshal): avoid unneccessary extra hook referencing (the
explicit hook referencing became unneccessarry with my changes from
Mon Dec 21 21:48:29 1998).
* gmain.c (g_main_iterate): fixed reference counting leaks with
premature loop aborts.
Fri Jan 1 22:47:44 1999 Tim Janik <timj@gtk.org>
* gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
as G_TOKEN_IDENTIFIER.
Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com> Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com>
* configure.in, glib.h: * configure.in, glib.h:

View File

@ -1,3 +1,21 @@
Sat Jan 2 02:20:59 1999 Tim Janik <timj@gtk.org>
* ghook.c:
(g_hook_list_invoke):
(g_hook_list_invoke_check):
(g_hook_list_marshal_check):
(g_hook_list_marshal): avoid unneccessary extra hook referencing (the
explicit hook referencing became unneccessarry with my changes from
Mon Dec 21 21:48:29 1998).
* gmain.c (g_main_iterate): fixed reference counting leaks with
premature loop aborts.
Fri Jan 1 22:47:44 1999 Tim Janik <timj@gtk.org>
* gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
as G_TOKEN_IDENTIFIER.
Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com> Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com>
* configure.in, glib.h: * configure.in, glib.h:

View File

@ -1,3 +1,21 @@
Sat Jan 2 02:20:59 1999 Tim Janik <timj@gtk.org>
* ghook.c:
(g_hook_list_invoke):
(g_hook_list_invoke_check):
(g_hook_list_marshal_check):
(g_hook_list_marshal): avoid unneccessary extra hook referencing (the
explicit hook referencing became unneccessarry with my changes from
Mon Dec 21 21:48:29 1998).
* gmain.c (g_main_iterate): fixed reference counting leaks with
premature loop aborts.
Fri Jan 1 22:47:44 1999 Tim Janik <timj@gtk.org>
* gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
as G_TOKEN_IDENTIFIER.
Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com> Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com>
* configure.in, glib.h: * configure.in, glib.h:

View File

@ -1,3 +1,21 @@
Sat Jan 2 02:20:59 1999 Tim Janik <timj@gtk.org>
* ghook.c:
(g_hook_list_invoke):
(g_hook_list_invoke_check):
(g_hook_list_marshal_check):
(g_hook_list_marshal): avoid unneccessary extra hook referencing (the
explicit hook referencing became unneccessarry with my changes from
Mon Dec 21 21:48:29 1998).
* gmain.c (g_main_iterate): fixed reference counting leaks with
premature loop aborts.
Fri Jan 1 22:47:44 1999 Tim Janik <timj@gtk.org>
* gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
as G_TOKEN_IDENTIFIER.
Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com> Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com>
* configure.in, glib.h: * configure.in, glib.h:

View File

@ -1,3 +1,21 @@
Sat Jan 2 02:20:59 1999 Tim Janik <timj@gtk.org>
* ghook.c:
(g_hook_list_invoke):
(g_hook_list_invoke_check):
(g_hook_list_marshal_check):
(g_hook_list_marshal): avoid unneccessary extra hook referencing (the
explicit hook referencing became unneccessarry with my changes from
Mon Dec 21 21:48:29 1998).
* gmain.c (g_main_iterate): fixed reference counting leaks with
premature loop aborts.
Fri Jan 1 22:47:44 1999 Tim Janik <timj@gtk.org>
* gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
as G_TOKEN_IDENTIFIER.
Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com> Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com>
* configure.in, glib.h: * configure.in, glib.h:

View File

@ -1,3 +1,21 @@
Sat Jan 2 02:20:59 1999 Tim Janik <timj@gtk.org>
* ghook.c:
(g_hook_list_invoke):
(g_hook_list_invoke_check):
(g_hook_list_marshal_check):
(g_hook_list_marshal): avoid unneccessary extra hook referencing (the
explicit hook referencing became unneccessarry with my changes from
Mon Dec 21 21:48:29 1998).
* gmain.c (g_main_iterate): fixed reference counting leaks with
premature loop aborts.
Fri Jan 1 22:47:44 1999 Tim Janik <timj@gtk.org>
* gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
as G_TOKEN_IDENTIFIER.
Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com> Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com>
* configure.in, glib.h: * configure.in, glib.h:

View File

@ -1,3 +1,21 @@
Sat Jan 2 02:20:59 1999 Tim Janik <timj@gtk.org>
* ghook.c:
(g_hook_list_invoke):
(g_hook_list_invoke_check):
(g_hook_list_marshal_check):
(g_hook_list_marshal): avoid unneccessary extra hook referencing (the
explicit hook referencing became unneccessarry with my changes from
Mon Dec 21 21:48:29 1998).
* gmain.c (g_main_iterate): fixed reference counting leaks with
premature loop aborts.
Fri Jan 1 22:47:44 1999 Tim Janik <timj@gtk.org>
* gscanner.c (g_scanner_unexp_token): handle G_TOKEN_IDENTIFIER_NULL
as G_TOKEN_IDENTIFIER.
Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com> Fri Jan 1 17:09:19 EST 1999 Jeff Garzik <jgarzik@pobox.com>
* configure.in, glib.h: * configure.in, glib.h:

30
ghook.c
View File

@ -273,11 +273,9 @@ g_hook_list_invoke (GHookList *hook_list,
hook = g_hook_first_valid (hook_list, may_recurse); hook = g_hook_first_valid (hook_list, may_recurse);
while (hook) while (hook)
{ {
GHook *tmp;
GHookFunc func; GHookFunc func;
gboolean was_in_call; gboolean was_in_call;
g_hook_ref (hook_list, hook);
func = (GHookFunc) hook->func; func = (GHookFunc) hook->func;
was_in_call = G_HOOK_IN_CALL (hook); was_in_call = G_HOOK_IN_CALL (hook);
@ -286,10 +284,7 @@ g_hook_list_invoke (GHookList *hook_list,
if (!was_in_call) if (!was_in_call)
hook->flags &= ~G_HOOK_FLAG_IN_CALL; hook->flags &= ~G_HOOK_FLAG_IN_CALL;
tmp = g_hook_next_valid (hook_list, hook, may_recurse); hook = g_hook_next_valid (hook_list, hook, may_recurse);
g_hook_unref (hook_list, hook);
hook = tmp;
} }
} }
@ -305,12 +300,10 @@ g_hook_list_invoke_check (GHookList *hook_list,
hook = g_hook_first_valid (hook_list, may_recurse); hook = g_hook_first_valid (hook_list, may_recurse);
while (hook) while (hook)
{ {
GHook *tmp;
GHookCheckFunc func; GHookCheckFunc func;
gboolean was_in_call; gboolean was_in_call;
gboolean need_destroy; gboolean need_destroy;
g_hook_ref (hook_list, hook);
func = (GHookCheckFunc) hook->func; func = (GHookCheckFunc) hook->func;
was_in_call = G_HOOK_IN_CALL (hook); was_in_call = G_HOOK_IN_CALL (hook);
@ -321,10 +314,7 @@ g_hook_list_invoke_check (GHookList *hook_list,
if (need_destroy) if (need_destroy)
g_hook_destroy_link (hook_list, hook); g_hook_destroy_link (hook_list, hook);
tmp = g_hook_next_valid (hook_list, hook, may_recurse); hook = g_hook_next_valid (hook_list, hook, may_recurse);
g_hook_unref (hook_list, hook);
hook = tmp;
} }
} }
@ -343,12 +333,9 @@ g_hook_list_marshal_check (GHookList *hook_list,
hook = g_hook_first_valid (hook_list, may_recurse); hook = g_hook_first_valid (hook_list, may_recurse);
while (hook) while (hook)
{ {
GHook *tmp;
gboolean was_in_call; gboolean was_in_call;
gboolean need_destroy; gboolean need_destroy;
g_hook_ref (hook_list, hook);
was_in_call = G_HOOK_IN_CALL (hook); was_in_call = G_HOOK_IN_CALL (hook);
hook->flags |= G_HOOK_FLAG_IN_CALL; hook->flags |= G_HOOK_FLAG_IN_CALL;
need_destroy = !marshaller (hook, data); need_destroy = !marshaller (hook, data);
@ -357,10 +344,7 @@ g_hook_list_marshal_check (GHookList *hook_list,
if (need_destroy) if (need_destroy)
g_hook_destroy_link (hook_list, hook); g_hook_destroy_link (hook_list, hook);
tmp = g_hook_next_valid (hook_list, hook, may_recurse); hook = g_hook_next_valid (hook_list, hook, may_recurse);
g_hook_unref (hook_list, hook);
hook = tmp;
} }
} }
@ -379,21 +363,15 @@ g_hook_list_marshal (GHookList *hook_list,
hook = g_hook_first_valid (hook_list, may_recurse); hook = g_hook_first_valid (hook_list, may_recurse);
while (hook) while (hook)
{ {
GHook *tmp;
gboolean was_in_call; gboolean was_in_call;
g_hook_ref (hook_list, hook);
was_in_call = G_HOOK_IN_CALL (hook); was_in_call = G_HOOK_IN_CALL (hook);
hook->flags |= G_HOOK_FLAG_IN_CALL; hook->flags |= G_HOOK_FLAG_IN_CALL;
marshaller (hook, data); marshaller (hook, data);
if (!was_in_call) if (!was_in_call)
hook->flags &= ~G_HOOK_FLAG_IN_CALL; hook->flags &= ~G_HOOK_FLAG_IN_CALL;
tmp = g_hook_next_valid (hook_list, hook, may_recurse); hook = g_hook_next_valid (hook_list, hook, may_recurse);
g_hook_unref (hook_list, hook);
hook = tmp;
} }
} }

View File

@ -273,11 +273,9 @@ g_hook_list_invoke (GHookList *hook_list,
hook = g_hook_first_valid (hook_list, may_recurse); hook = g_hook_first_valid (hook_list, may_recurse);
while (hook) while (hook)
{ {
GHook *tmp;
GHookFunc func; GHookFunc func;
gboolean was_in_call; gboolean was_in_call;
g_hook_ref (hook_list, hook);
func = (GHookFunc) hook->func; func = (GHookFunc) hook->func;
was_in_call = G_HOOK_IN_CALL (hook); was_in_call = G_HOOK_IN_CALL (hook);
@ -286,10 +284,7 @@ g_hook_list_invoke (GHookList *hook_list,
if (!was_in_call) if (!was_in_call)
hook->flags &= ~G_HOOK_FLAG_IN_CALL; hook->flags &= ~G_HOOK_FLAG_IN_CALL;
tmp = g_hook_next_valid (hook_list, hook, may_recurse); hook = g_hook_next_valid (hook_list, hook, may_recurse);
g_hook_unref (hook_list, hook);
hook = tmp;
} }
} }
@ -305,12 +300,10 @@ g_hook_list_invoke_check (GHookList *hook_list,
hook = g_hook_first_valid (hook_list, may_recurse); hook = g_hook_first_valid (hook_list, may_recurse);
while (hook) while (hook)
{ {
GHook *tmp;
GHookCheckFunc func; GHookCheckFunc func;
gboolean was_in_call; gboolean was_in_call;
gboolean need_destroy; gboolean need_destroy;
g_hook_ref (hook_list, hook);
func = (GHookCheckFunc) hook->func; func = (GHookCheckFunc) hook->func;
was_in_call = G_HOOK_IN_CALL (hook); was_in_call = G_HOOK_IN_CALL (hook);
@ -321,10 +314,7 @@ g_hook_list_invoke_check (GHookList *hook_list,
if (need_destroy) if (need_destroy)
g_hook_destroy_link (hook_list, hook); g_hook_destroy_link (hook_list, hook);
tmp = g_hook_next_valid (hook_list, hook, may_recurse); hook = g_hook_next_valid (hook_list, hook, may_recurse);
g_hook_unref (hook_list, hook);
hook = tmp;
} }
} }
@ -343,12 +333,9 @@ g_hook_list_marshal_check (GHookList *hook_list,
hook = g_hook_first_valid (hook_list, may_recurse); hook = g_hook_first_valid (hook_list, may_recurse);
while (hook) while (hook)
{ {
GHook *tmp;
gboolean was_in_call; gboolean was_in_call;
gboolean need_destroy; gboolean need_destroy;
g_hook_ref (hook_list, hook);
was_in_call = G_HOOK_IN_CALL (hook); was_in_call = G_HOOK_IN_CALL (hook);
hook->flags |= G_HOOK_FLAG_IN_CALL; hook->flags |= G_HOOK_FLAG_IN_CALL;
need_destroy = !marshaller (hook, data); need_destroy = !marshaller (hook, data);
@ -357,10 +344,7 @@ g_hook_list_marshal_check (GHookList *hook_list,
if (need_destroy) if (need_destroy)
g_hook_destroy_link (hook_list, hook); g_hook_destroy_link (hook_list, hook);
tmp = g_hook_next_valid (hook_list, hook, may_recurse); hook = g_hook_next_valid (hook_list, hook, may_recurse);
g_hook_unref (hook_list, hook);
hook = tmp;
} }
} }
@ -379,21 +363,15 @@ g_hook_list_marshal (GHookList *hook_list,
hook = g_hook_first_valid (hook_list, may_recurse); hook = g_hook_first_valid (hook_list, may_recurse);
while (hook) while (hook)
{ {
GHook *tmp;
gboolean was_in_call; gboolean was_in_call;
g_hook_ref (hook_list, hook);
was_in_call = G_HOOK_IN_CALL (hook); was_in_call = G_HOOK_IN_CALL (hook);
hook->flags |= G_HOOK_FLAG_IN_CALL; hook->flags |= G_HOOK_FLAG_IN_CALL;
marshaller (hook, data); marshaller (hook, data);
if (!was_in_call) if (!was_in_call)
hook->flags &= ~G_HOOK_FLAG_IN_CALL; hook->flags &= ~G_HOOK_FLAG_IN_CALL;
tmp = g_hook_next_valid (hook_list, hook, may_recurse); hook = g_hook_next_valid (hook_list, hook, may_recurse);
g_hook_unref (hook_list, hook);
hook = tmp;
} }
} }

View File

@ -402,7 +402,7 @@ g_main_dispatch (GTimeVal *current_time)
} }
} }
g_hook_unref (&source_list, (GHook *)source); g_hook_unref (&source_list, (GHook*) source);
} }
} }
@ -472,19 +472,19 @@ g_main_iterate (gboolean block,
while (hook) while (hook)
{ {
GSource *source = (GSource *)hook; GSource *source = (GSource *)hook;
GHook *tmp;
gint source_timeout = -1; gint source_timeout = -1;
if ((n_ready > 0) && (source->priority > current_priority)) if ((n_ready > 0) && (source->priority > current_priority))
{
g_hook_unref (&source_list, hook);
break; break;
}
if (G_HOOK_IN_CALL (hook) && !(hook->flags & G_SOURCE_CAN_RECURSE)) if (G_HOOK_IN_CALL (hook) && !(hook->flags & G_SOURCE_CAN_RECURSE))
{ {
hook = g_hook_next_valid (&source_list, hook, TRUE); hook = g_hook_next_valid (&source_list, hook, TRUE);
continue; continue;
} }
g_hook_ref (&source_list, hook);
if (hook->flags & G_SOURCE_READY || if (hook->flags & G_SOURCE_READY ||
((GSourceFuncs *) hook->func)->prepare (source->source_data, ((GSourceFuncs *) hook->func)->prepare (source->source_data,
&current_time, &current_time,
@ -515,10 +515,7 @@ g_main_iterate (gboolean block,
timeout = MIN (timeout, source_timeout); timeout = MIN (timeout, source_timeout);
} }
tmp = g_hook_next_valid (&source_list, hook, TRUE); hook = g_hook_next_valid (&source_list, hook, TRUE);
g_hook_unref (&source_list, hook);
hook = tmp;
} }
/* poll(), if necessary */ /* poll(), if necessary */
@ -533,18 +530,18 @@ g_main_iterate (gboolean block,
while (hook) while (hook)
{ {
GSource *source = (GSource *)hook; GSource *source = (GSource *)hook;
GHook *tmp;
if ((n_ready > 0) && (source->priority > current_priority)) if ((n_ready > 0) && (source->priority > current_priority))
{
g_hook_unref (&source_list, hook);
break; break;
}
if (G_HOOK_IN_CALL (hook) && !(hook->flags & G_SOURCE_CAN_RECURSE)) if (G_HOOK_IN_CALL (hook) && !(hook->flags & G_SOURCE_CAN_RECURSE))
{ {
hook = g_hook_next_valid (&source_list, hook, TRUE); hook = g_hook_next_valid (&source_list, hook, TRUE);
continue; continue;
} }
g_hook_ref (&source_list, hook);
if (hook->flags & G_SOURCE_READY || if (hook->flags & G_SOURCE_READY ||
((GSourceFuncs *) hook->func)->check (source->source_data, ((GSourceFuncs *) hook->func)->check (source->source_data,
&current_time)) &current_time))
@ -566,10 +563,7 @@ g_main_iterate (gboolean block,
} }
} }
tmp = g_hook_next_valid (&source_list, hook, TRUE); hook = g_hook_next_valid (&source_list, hook, TRUE);
g_hook_unref (&source_list, hook);
hook = tmp;
} }
/* Now invoke the callbacks */ /* Now invoke the callbacks */

View File

@ -957,7 +957,9 @@ g_scanner_unexp_token (GScanner *scanner,
break; break;
case G_TOKEN_IDENTIFIER: case G_TOKEN_IDENTIFIER:
if (expected_token == G_TOKEN_IDENTIFIER) case G_TOKEN_IDENTIFIER_NULL:
if (expected_token == G_TOKEN_IDENTIFIER ||
expected_token == G_TOKEN_IDENTIFIER_NULL)
print_unexp = FALSE; print_unexp = FALSE;
g_snprintf (token_string, g_snprintf (token_string,
token_string_len, token_string_len,
@ -1057,10 +1059,12 @@ g_scanner_unexp_token (GScanner *scanner,
break; break;
case G_TOKEN_IDENTIFIER: case G_TOKEN_IDENTIFIER:
case G_TOKEN_IDENTIFIER_NULL:
g_snprintf (expected_string, g_snprintf (expected_string,
expected_string_len, expected_string_len,
"%s%s", "%s%s",
scanner->token == G_TOKEN_IDENTIFIER ? "valid " : "", (scanner->token == G_TOKEN_IDENTIFIER_NULL ||
scanner->token == G_TOKEN_IDENTIFIER ? "valid " : ""),
identifier_spec); identifier_spec);
break; break;

24
gmain.c
View File

@ -402,7 +402,7 @@ g_main_dispatch (GTimeVal *current_time)
} }
} }
g_hook_unref (&source_list, (GHook *)source); g_hook_unref (&source_list, (GHook*) source);
} }
} }
@ -472,19 +472,19 @@ g_main_iterate (gboolean block,
while (hook) while (hook)
{ {
GSource *source = (GSource *)hook; GSource *source = (GSource *)hook;
GHook *tmp;
gint source_timeout = -1; gint source_timeout = -1;
if ((n_ready > 0) && (source->priority > current_priority)) if ((n_ready > 0) && (source->priority > current_priority))
{
g_hook_unref (&source_list, hook);
break; break;
}
if (G_HOOK_IN_CALL (hook) && !(hook->flags & G_SOURCE_CAN_RECURSE)) if (G_HOOK_IN_CALL (hook) && !(hook->flags & G_SOURCE_CAN_RECURSE))
{ {
hook = g_hook_next_valid (&source_list, hook, TRUE); hook = g_hook_next_valid (&source_list, hook, TRUE);
continue; continue;
} }
g_hook_ref (&source_list, hook);
if (hook->flags & G_SOURCE_READY || if (hook->flags & G_SOURCE_READY ||
((GSourceFuncs *) hook->func)->prepare (source->source_data, ((GSourceFuncs *) hook->func)->prepare (source->source_data,
&current_time, &current_time,
@ -515,10 +515,7 @@ g_main_iterate (gboolean block,
timeout = MIN (timeout, source_timeout); timeout = MIN (timeout, source_timeout);
} }
tmp = g_hook_next_valid (&source_list, hook, TRUE); hook = g_hook_next_valid (&source_list, hook, TRUE);
g_hook_unref (&source_list, hook);
hook = tmp;
} }
/* poll(), if necessary */ /* poll(), if necessary */
@ -533,18 +530,18 @@ g_main_iterate (gboolean block,
while (hook) while (hook)
{ {
GSource *source = (GSource *)hook; GSource *source = (GSource *)hook;
GHook *tmp;
if ((n_ready > 0) && (source->priority > current_priority)) if ((n_ready > 0) && (source->priority > current_priority))
{
g_hook_unref (&source_list, hook);
break; break;
}
if (G_HOOK_IN_CALL (hook) && !(hook->flags & G_SOURCE_CAN_RECURSE)) if (G_HOOK_IN_CALL (hook) && !(hook->flags & G_SOURCE_CAN_RECURSE))
{ {
hook = g_hook_next_valid (&source_list, hook, TRUE); hook = g_hook_next_valid (&source_list, hook, TRUE);
continue; continue;
} }
g_hook_ref (&source_list, hook);
if (hook->flags & G_SOURCE_READY || if (hook->flags & G_SOURCE_READY ||
((GSourceFuncs *) hook->func)->check (source->source_data, ((GSourceFuncs *) hook->func)->check (source->source_data,
&current_time)) &current_time))
@ -566,10 +563,7 @@ g_main_iterate (gboolean block,
} }
} }
tmp = g_hook_next_valid (&source_list, hook, TRUE); hook = g_hook_next_valid (&source_list, hook, TRUE);
g_hook_unref (&source_list, hook);
hook = tmp;
} }
/* Now invoke the callbacks */ /* Now invoke the callbacks */

View File

@ -957,7 +957,9 @@ g_scanner_unexp_token (GScanner *scanner,
break; break;
case G_TOKEN_IDENTIFIER: case G_TOKEN_IDENTIFIER:
if (expected_token == G_TOKEN_IDENTIFIER) case G_TOKEN_IDENTIFIER_NULL:
if (expected_token == G_TOKEN_IDENTIFIER ||
expected_token == G_TOKEN_IDENTIFIER_NULL)
print_unexp = FALSE; print_unexp = FALSE;
g_snprintf (token_string, g_snprintf (token_string,
token_string_len, token_string_len,
@ -1057,10 +1059,12 @@ g_scanner_unexp_token (GScanner *scanner,
break; break;
case G_TOKEN_IDENTIFIER: case G_TOKEN_IDENTIFIER:
case G_TOKEN_IDENTIFIER_NULL:
g_snprintf (expected_string, g_snprintf (expected_string,
expected_string_len, expected_string_len,
"%s%s", "%s%s",
scanner->token == G_TOKEN_IDENTIFIER ? "valid " : "", (scanner->token == G_TOKEN_IDENTIFIER_NULL ||
scanner->token == G_TOKEN_IDENTIFIER ? "valid " : ""),
identifier_spec); identifier_spec);
break; break;