Subject: Re: bug#5749: 24.0.50; Gomoku startup latency

From: YAMAMOTO Mitsuharu <[email-masked]>
Date: Wed, 24 Mar 2010 12:27:03 +0900

>>>>> On Tue, 23 Mar 2010 21:51:24 -0400, Glenn Morris <[email-masked]> said:

> Stephen Berman wrote:
>> 1. Let ~/.emacs consist of this sexp:
>> (setq initial-frame-alist '((fullscreen . fullheight)))
>> 2. Start Emacs with the above init file.
>> 3. M-x gomoku
>> => There is a noticeable delay loading the game -- on my system 3-4
>> seconds.

> This is interesting. Emacs 23.1 is almost instantaneous, but 23.1.94
> is very slow, and also starts using a huge amount of memory (1GB+ for me).
> Loading gomoku.el from 23.1 in 23.1.94 makes no difference.

This is due to a behavioral change of `append-to-buffer', which used
to preserve the point when the first argument coincides with the
current buffer.  The following patch would work for this case.

Maybe other occurrences of `(append-to-buffer (current-buffer) ...)'
should also be checked if they work as intended.

				     YAMAMOTO Mitsuharu
				[email-masked]

=== modified file 'lisp/play/gomoku.el'
*** lisp/play/gomoku.el	2010-01-13 08:35:10 +0000
--- lisp/play/gomoku.el	2010-03-24 03:04:35 +0000
***************
*** 1040,1046 ****
  		    (= i (- m 2))
  		    (progn
  		      (while (>= i 3)
! 			(append-to-buffer (current-buffer) opoint (point))
  			(setq i (- i 2)))
  		      (goto-char (point-max))))
  	       (setq point (point))
--- 1040,1046 ----
  		    (= i (- m 2))
  		    (progn
  		      (while (>= i 3)
! 			(prepend-to-buffer (current-buffer) opoint (point))
  			(setq i (- i 2)))
  		      (goto-char (point-max))))
  	       (setq point (point))