[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/realgud 5d83013 65/72: Add proper cleanup for locals. F
From: |
Stefan Monnier |
Subject: |
[elpa] externals/realgud 5d83013 65/72: Add proper cleanup for locals. Fix broken logic from b5ee91c. |
Date: |
Fri, 26 Mar 2021 22:49:14 -0400 (EDT) |
branch: externals/realgud
commit 5d83013aa06898f8c02eb171145dfdbcfa8124fe
Author: 813 <813gan@protonmail.com>
Commit: 813 <813gan@protonmail.com>
Add proper cleanup for locals. Fix broken logic from b5ee91c.
Locals buffer will not auto-recreate after being killed.
Autorefresh will work now after switching to new srcbuf.
---
realgud/common/buffer/locals.el | 20 ++++++++++----------
realgud/common/core.el | 2 ++
realgud/common/track.el | 2 +-
3 files changed, 13 insertions(+), 11 deletions(-)
diff --git a/realgud/common/buffer/locals.el b/realgud/common/buffer/locals.el
index 79b8da3..d69191f 100644
--- a/realgud/common/buffer/locals.el
+++ b/realgud/common/buffer/locals.el
@@ -29,7 +29,6 @@
(cl-defstruct realgud-locals-info
"debugger object/structure specific to a (top-level) program to be debugged."
(cmdbuf nil) ;; buffer of the associated debugger process
- (srcbuf nil) ;; associated source buffer
)
(make-variable-buffer-local (defvar realgud-locals-info))
@@ -66,30 +65,31 @@ ARGS - arguments for command"
(defun realgud-locals-init ()
"Create locals buffer and fill it for first time."
- (let ((cmdbuf (realgud-get-cmdbuf))
- (srcbuf (realgud-get-srcbuf)))
+ (let ((cmdbuf (realgud-get-cmdbuf)) )
(with-current-buffer-safe cmdbuf
(let ((locals-buffer (get-buffer-create
(format "*locals %s*"
(realgud-get-buffer-base-name
(buffer-name))))))
(realgud-cmdbuf-info-locals-buf= locals-buffer)
- (with-current-buffer-safe (realgud-get-srcbuf)
+ (with-current-buffer-safe (realgud-get-cmdbuf)
+ ;; Hook loc change for autorefresh.
(add-hook 'realgud-update-hook 'realgud:window-locals nil t) )
(with-current-buffer locals-buffer
(realgud-locals-mode) ; It kills local variables
- (add-hook 'kill-buffer-hook
- (lambda ()
- (with-current-buffer-safe (realgud-sget 'locals-info
'srcbuf)
- (remove-hook 'realgud-update-hook
'realgud:window-locals t) )) nil t)
+ (add-hook 'kill-buffer-hook 'realgud-locals-terminate)
(setq realgud-buffer-type 'locals)
(set (make-local-variable 'realgud-locals-info)
(make-realgud-locals-info
- :cmdbuf cmdbuf
- :srcbuf srcbuf)) )
+ :cmdbuf cmdbuf)) )
(realgud-locals-register-reload)
(realgud-locals-insert) ))))
+(defun realgud-locals-terminate (&optional buf)
+ (with-current-buffer (or buf (current-buffer))
+ (with-current-buffer-safe (realgud-get-cmdbuf)
+ (remove-hook 'realgud-update-hook 'realgud:window-locals t) )))
+
(defun realgud-locals-get-variable-data (local-var-name)
"Return list with type and value of variable, in that order.
diff --git a/realgud/common/core.el b/realgud/common/core.el
index af23eb7..b46b1fc 100644
--- a/realgud/common/core.el
+++ b/realgud/common/core.el
@@ -29,6 +29,7 @@
(declare-function realgud-cmdbuf-command-string 'realgud-buffer-command)
(declare-function realgud-cmdbuf-debugger-name 'realgud-buffer-command)
(declare-function realgud-cmdbuf-info-bp-list= 'realgud-buffer-command)
+(declare-function realgud-locals-terminate 'realgud-locals)
(declare-function realgud-cmdbuf-info-in-debugger?= 'realgud-buffer-command)
(declare-function realgud-cmdbuf-info-starting-directory=
'realgud-buffer-command)
(declare-function realgud-cmdbuf-mode-line-update 'realgud-buffer-command)
@@ -159,6 +160,7 @@ icons and resets short-key mode."
(let ((cmdbuf (realgud-get-cmdbuf buf)))
(if cmdbuf
(with-current-buffer cmdbuf
+ (realgud-locals-terminate)
(realgud-cmdbuf-info-in-debugger?= nil)
(realgud-cmdbuf-info-bp-list= '())
(realgud-cmdbuf-mode-line-update)
diff --git a/realgud/common/track.el b/realgud/common/track.el
index 6d09d3a..a655d9d 100644
--- a/realgud/common/track.el
+++ b/realgud/common/track.el
@@ -435,7 +435,7 @@ encountering a new loc."
(realgud-cmdbuf-info-in-srcbuf?= nil))
)
))
- (with-current-buffer-safe (realgud-get-srcbuf)
+ (with-current-buffer-safe (realgud-get-cmdbuf)
(run-hooks 'realgud-update-hook) )
)
- [elpa] externals/realgud 1238d8e 37/72: Fix bug when invalid debugger name ..., (continued)
- [elpa] externals/realgud 1238d8e 37/72: Fix bug when invalid debugger name ..., Stefan Monnier, 2021/03/26
- [elpa] externals/realgud e03446f 36/72: Merge pull request #265 from realgud/feature/comint-truncate-buffer, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 31a99d3 42/72: debbugers: Fix duplicate require-relative-list for ../../common/run., Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 24c02f0 43/72: Merge pull request #272 from Apteryks/fix-unbound-realgud-run-process, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 96dada0 47/72: fix buffer type detection for locals., Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 48c2562 54/72: Fix compilation error., Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 1cc5ddc 59/72: add ability to show all locals in one command, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 4a9c658 62/72: Add option to control orientation when splitting window., Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 5abc55c 63/72: Merge pull request #285 from yangyingchao/feature/split-orientation, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 66f22b9 64/72: Avoid running y-n-prompt from inside minubuffer..., Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 5d83013 65/72: Add proper cleanup for locals. Fix broken logic from b5ee91c.,
Stefan Monnier <=
- [elpa] externals/realgud a92335e 67/72: trepan2/3k re prompts & locals require..., Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 4e4d1d2 70/72: fix issue: failed to load file buffer/locals., Stefan Monnier, 2021/03/26
- [elpa] externals/realgud ff66001 71/72: Merge pull request #288 from yangyingchao/hotfix_failed_to_load_helper, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud b5ee91c 51/72: Introduce realgud-update-hook and add locals auto-refresh, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 42bb9af 53/72: Remove circular-causing require, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud bd1942e 60/72: Use list of variables as ID for frames, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud f73c039 72/72: trepan2-loc-fn-callback allow for optional callback, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 8064615 12/72: 10th travis try, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 3e11e2a 20/72: Travis has changed - attempted fix #2, Stefan Monnier, 2021/03/26
- [elpa] externals/realgud 2cca776 30/72: Merge pull request #259 from JohnC32/master, Stefan Monnier, 2021/03/26