GNU bug report logs - #10631
Infinite loop in emacs 23 on terminal (-nw option) on xgselect.c:58-59 when compiled with gtk+ or gconf support

Previous Next

Package: emacs;

Reported by: Maciej Marcin Piechotka <uzytkownik2 <at> gmail.com>

Date: Sat, 28 Jan 2012 18:43:03 UTC

Severity: normal

Tags: moreinfo

Merged with 6975, 9754

Fixed in version 24.2

Done: Ken Brown <kbrown <at> cornell.edu>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Maciej Marcin Piechotka <uzytkownik2 <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: Infinite loop in emacs 23 on terminal (-nw option) on
	xgselect.c:58-59 when compiled with gtk+ or gconf support
Date: Sat, 28 Jan 2012 16:24:48 +0000
[Message part 1 (text/plain, inline)]
I hit an infinite loop on gselect.c:58-59. After quick debugging I found
that the problem is in loop xgselect.c:58-59:

while(n_gfds > gfds_size)
  gfds_size *= 2;

Problem is that:

(gdb) p n_gfds
$3 = 1
(gdb) p gfds_size
$4 = 0

1. It seems that xgselect_initialize was not called as X system is
initialized.

2. Is there a reason why the code is not using (much more efficient but
equivalent) such code in the first place:

if (ngfds > gfds_size)
  {
    gfds_size = 1 << g_bit_storage (ngfds);
    xfree (gfds);
    gfds = xmalloc (sizeof (*gfds) * gfds_size);
  }

3. The attached file get rids of initialization at all initializing at
the cost of conditional freeing of gfds (and starting mallocing from 1
instead of 128).

Best regards

[0001-Fix-infinit-loop-when-emacs-is-compiled-with-GTK-sup.patch (text/x-patch, attachment)]

This bug report was last modified 12 years and 163 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.