[slime-cvs] CVS slime

CVS User heller heller at common-lisp.net
Sun Nov 11 09:30:53 UTC 2012


Update of /project/slime/cvsroot/slime
In directory tiger.common-lisp.net:/tmp/cvs-serv3184

Modified Files:
	ChangeLog swank-allegro.lisp 
Log Message:
* swank-allegro.lisp (ldb-code-to-src-loc): Scan backward to the
first code point with a non-nil start-char.
(frame-package): Also match for ((:internal foo ...)).

--- /project/slime/cvsroot/slime/ChangeLog	2012/11/08 12:34:06	1.2364
+++ /project/slime/cvsroot/slime/ChangeLog	2012/11/11 09:30:53	1.2365
@@ -1,3 +1,9 @@
+2012-11-11  Helmut Eller  <heller at common-lisp.net>
+
+	* swank-allegro.lisp (ldb-code-to-src-loc): Scan backward to the
+	first code point with a non-nil start-char.
+	(frame-package): Also match for ((:internal foo ...)).
+
 2012-11-08  Helmut Eller  <heller at common-lisp.net>
 
 	* slime.el (slime-timer-call): Use debug marker in
--- /project/slime/cvsroot/slime/swank-allegro.lisp	2012/11/02 08:14:28	1.155
+++ /project/slime/cvsroot/slime/swank-allegro.lisp	2012/11/11 09:30:53	1.156
@@ -239,8 +239,13 @@
 
 #+(version>= 8 2)
 (defun ldb-code-to-src-loc (code)
-  (let* ((start (excl::ldb-code-start-char code))
-         (func (excl::ldb-code-func code))
+  (declare (optimize debug))
+  (let* ((func (excl::ldb-code-func code))
+         (debug-info (excl::function-source-debug-info func))
+         (start (loop for i downfrom (excl::ldb-code-index code) 
+                      for bpt = (aref debug-info i)
+                      for start = (excl::ldb-code-start-char bpt)
+                      when start return start))
          (src-file (excl:source-file func)))
     (cond (start
            (buffer-or-file-location src-file start))
@@ -250,7 +255,7 @@
                   (paths (source-paths-of (excl::ldb-code-source whole)
                                           (excl::ldb-code-source code)))
                   (path (if paths (longest-common-prefix paths) '()))
-                  (start (excl::ldb-code-start-char whole)))
+                  (start 0))
              (buffer-or-file
               src-file
               (lambda (file)
@@ -296,7 +301,9 @@
   (let* ((frame (nth-frame frame-number))
          (exp (debugger:frame-expression frame)))
     (typecase exp
-      ((cons symbol) (symbol-package (car exp))))))
+      ((cons symbol) (symbol-package (car exp)))
+      ((cons (cons (eql :internal) (cons symbol)))
+       (symbol-package (cadar exp))))))
 
 (defimplementation return-from-frame (frame-number form)
   (let ((frame (nth-frame frame-number)))





More information about the slime-cvs mailing list