27 lines
781 B
Diff
27 lines
781 B
Diff
|
diff -up emacs-23.3/src/xgselect.c.xgselect emacs-23.3/src/xgselect.c
|
||
|
--- emacs-23.3/src/xgselect.c.xgselect 2011-11-25 14:05:03.963372281 +0100
|
||
|
+++ emacs-23.3/src/xgselect.c 2011-11-25 14:06:49.798049160 +0100
|
||
|
@@ -53,12 +53,17 @@ xg_select (max_fds, rfds, wfds, efds, ti
|
||
|
g_main_context_pending (context);
|
||
|
|
||
|
do {
|
||
|
- if (n_gfds > gfds_size)
|
||
|
+ if (n_gfds > gfds_size)
|
||
|
{
|
||
|
- while (n_gfds > gfds_size)
|
||
|
- gfds_size *= 2;
|
||
|
- xfree (gfds);
|
||
|
- gfds = xmalloc (sizeof (*gfds) * gfds_size);
|
||
|
+ if (gfds_size == 0)
|
||
|
+ xgselect_initialize ();
|
||
|
+ else
|
||
|
+ {
|
||
|
+ while (n_gfds > gfds_size)
|
||
|
+ gfds_size *= 2;
|
||
|
+ xfree (gfds);
|
||
|
+ gfds = xmalloc (sizeof (*gfds) * gfds_size);
|
||
|
+ }
|
||
|
}
|
||
|
|
||
|
n_gfds = g_main_context_query (context,
|