From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Jiege Chen Newsgroups: gmane.emacs.bugs Subject: bug#23777: 25.0.95; Throwing (error "Selecting deleted buffer") in timer Date: Tue, 28 Jun 2016 04:54:20 +0000 (UTC) Message-ID: References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1467120909 6778 80.91.229.3 (28 Jun 2016 13:35:09 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 28 Jun 2016 13:35:09 +0000 (UTC) To: 23777@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Jun 28 15:34:54 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1bHtAC-0002cJ-IS for geb-bug-gnu-emacs@m.gmane.org; Tue, 28 Jun 2016 15:34:52 +0200 Original-Received: from localhost ([::1]:36773 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHtAB-0005jE-Lm for geb-bug-gnu-emacs@m.gmane.org; Tue, 28 Jun 2016 09:34:51 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40611) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHt6Z-0002Mz-5O for bug-gnu-emacs@gnu.org; Tue, 28 Jun 2016 09:31:08 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bHt6T-0000gD-W6 for bug-gnu-emacs@gnu.org; Tue, 28 Jun 2016 09:31:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:46539) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHt6T-0000fv-Se for bug-gnu-emacs@gnu.org; Tue, 28 Jun 2016 09:31:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1bHt6T-00066W-NZ for bug-gnu-emacs@gnu.org; Tue, 28 Jun 2016 09:31:01 -0400 X-Loop: help-debbugs@gnu.org In-Reply-To: Resent-From: Jiege Chen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 28 Jun 2016 13:31:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 23777 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.146712063223418 (code B ref -1); Tue, 28 Jun 2016 13:31:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 28 Jun 2016 13:30:32 +0000 Original-Received: from localhost ([127.0.0.1]:58876 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bHt5z-00065e-NH for submit@debbugs.gnu.org; Tue, 28 Jun 2016 09:30:31 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:49407) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bHt5v-00065N-8R for submit@debbugs.gnu.org; Tue, 28 Jun 2016 09:30:30 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bHt5m-0000WU-4f for submit@debbugs.gnu.org; Tue, 28 Jun 2016 09:30:22 -0400 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:54875) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHt5m-0000W1-1p for submit@debbugs.gnu.org; Tue, 28 Jun 2016 09:30:18 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40358) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHt5j-0000Hw-OT for bug-gnu-emacs@gnu.org; Tue, 28 Jun 2016 09:30:16 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bHt5c-0000S1-9u for bug-gnu-emacs@gnu.org; Tue, 28 Jun 2016 09:30:14 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:36867) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bHt5c-0000Q3-2o for bug-gnu-emacs@gnu.org; Tue, 28 Jun 2016 09:30:08 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1bHt5Y-0007o9-0n for bug-gnu-emacs@gnu.org; Tue, 28 Jun 2016 15:30:05 +0200 Original-Received: from 218.192.232.85 ([218.192.232.85]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 28 Jun 2016 15:30:03 +0200 Original-Received: from jiegec by 218.192.232.85 with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 28 Jun 2016 15:30:03 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 57 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 218.192.232.85 User-Agent: NewsTap/5.1.8 (iPad) Cancel-Lock: sha1:TyjA3b6RaZHg012ESQXwTwAx2ik= X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:120176 Archived-At: Noam Postavsky wrote: > On Mon, Jun 27, 2016 at 10:08 AM, Jiajie Chen wrote: >> >> I have found the bug -- it comes from nlinum.el: > [...] >> >> It seems that when the timer is ran, the (current-buffer) no longer >> exists. That buffer may be a temp buffer. >> >> And my init code includes: >> >> (add-hook 'nlinum-mode-hook >> (lambda () >> (when nlinum-mode >> (setq nlinum--width >> (1+ (length (number-to-string >> (count-lines (point-min) (point-max)))))) >> (nlinum--flush)))) >> >> A fix would be: >> >> (defun nlinum--flush () >> (nlinum--setup-windows) >> ;; (kill-local-variable 'nlinum--ol-counter) >> (remove-overlays (point-min) (point-max) 'nlinum t) >> (run-with-timer 0 nil >> (lambda (buf) >> (when (buffer-live-p buf) >> (with-current-buffer buf >> (with-silent-modifications >> ;; FIXME: only remove `fontified' on those parts of the >> ;; buffer that had an nlinum overlay! >> (remove-text-properties >> (point-min) (point-max) '(fontified))))) >> (current-buffer))) > > Perhaps it makes more sense to put that buffer-live-p check in your > nlinum-mode-hook lambda? Actually I wonder why you need to call > nlinum--flush at all? Though I admit I don't really understand the > nlinum code either, e.g. what is the use of (run-with-timer 0 ...), > why not run the thing immediately? > > > > > Yes that's another solution. In my memory that code snippet in my init comes from EmacsWiki. I will try whether it works tonight (UTC+8 here). I don't understand that timer too. In Android for example, that might be intended to wait for the GUI event loop to update some controls. -- Jiegec