From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: Bug: org-element--cache-sync called after switching buffers [8.3.1 (8.3.1-16-gf6aa53-elpa @ /home/mah/.emacs.d/elpa/org-20150810/)] Date: Fri, 21 Aug 2015 17:20:13 +0200 Message-ID: <87twrsmzwy.fsf@nicolasgoaziou.fr> References: <87oai3yre6.fsf@flynn.nichework.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:44752) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZSo5W-0004Cy-9z for emacs-orgmode@gnu.org; Fri, 21 Aug 2015 11:18:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZSo5V-00069J-DR for emacs-orgmode@gnu.org; Fri, 21 Aug 2015 11:18:38 -0400 Received: from relay3-d.mail.gandi.net ([2001:4b98:c:538::195]:34888) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZSo5V-00068i-6a for emacs-orgmode@gnu.org; Fri, 21 Aug 2015 11:18:37 -0400 In-Reply-To: <87oai3yre6.fsf@flynn.nichework.com> (Mark A. Hershberger's message of "Wed, 19 Aug 2015 16:06:41 -0400") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: "Mark A. Hershberger" Cc: emacs-orgmode@gnu.org Hello, "Mark A. Hershberger" writes: > While composing an email in mu4e, I get the following backtrace. It > looks like this is because mu4e switches buffers between the time > org-element-cache-reset is called and the time that > org-element--cache-sync is called. Does the following change solve the issue? diff --git a/lisp/org-element.el b/lisp/org-element.el index 8f41ab2..3179fae 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -4903,6 +4903,7 @@ This function assumes `org-element--cache' is a valid AVL tree." (defsubst org-element--cache-active-p () "Non-nil when cache is active in current buffer." (and org-element-use-cache + org-element--cache (or (derived-mode-p 'org-mode) orgstruct-mode))) (defun org-element--cache-find (pos &optional side) @@ -5615,7 +5616,8 @@ buffers." (interactive "P") (dolist (buffer (if all (buffer-list) (list (current-buffer)))) (with-current-buffer buffer - (when (org-element--cache-active-p) + (when (and org-element-use-cache + (or (derived-mode-p 'org-mode) orgstruct-mode)) (org-set-local 'org-element--cache (avl-tree-create #'org-element--cache-compare)) (org-set-local 'org-element--cache-objects (make-hash-table :test #'eq)) Regards, -- Nicolas Goaziou