branch: externals/dape
commit b04e927abac6fcbef480c8a39881d69baa1bec98
Author: Daniel Pettersson <[email protected]>
Commit: Daniel Pettersson <[email protected]>

    Fix pointer dereference variables not being expandable
    
    Addressing issue #299
---
 dape.el | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/dape.el b/dape.el
index 868eb54c194..c87ce96bd45 100644
--- a/dape.el
+++ b/dape.el
@@ -1090,6 +1090,13 @@ See `dape--file-name-1'."
                    :key (lambda (frame) (plist-get frame :id))))
         (car stack-frames))))
 
+(defun dape--variable-name (variable)
+  "Return plist VARIABLE's :name or :evaluateName."
+  (let ((name (or (plist-get variable :name) "")))
+    (if (string-empty-p name)
+        (or (plist-get variable :evaluateName) "")
+      name)))
+
 (defun dape--object-to-marker (conn plist)
   "Return marker created from PLIST and CONN config.
 Marker is created from PLIST keys :source and :line.
@@ -2007,7 +2014,7 @@ See `dape-request' for expected CB signature."
              (cl-loop
               for variable in (or (plist-get object :scopes)
                                   (plist-get object :variables))
-              for name = (plist-get variable :name)
+              for name = (dape--variable-name variable)
               for expensive-p = (eq (plist-get variable :expensive) t)
               when (and (not expensive-p) (funcall pred (cons name path)))
               collect variable)))
@@ -2016,7 +2023,7 @@ See `dape-request' for expected CB signature."
           (dape--with-request (dape--variables conn object)
             (dape--with-request
                 (dape--variables-recursive
-                 conn object (cons (plist-get object :name) path) pred)
+                 conn object (cons (dape--variable-name object) path) pred)
               (when (length= objects (cl-incf responses))
                 (dape--request-continue cb))))))
     (dape--request-continue cb)))
@@ -4651,8 +4658,8 @@ current buffer with CONN config."
               (plist-get dape--variable :result))))
      (read-string (format-prompt "Set value of %s `%s'"
                                  default
-                                 (plist-get dape--variable :type)
-                                 (plist-get dape--variable :name))
+                                 (or (plist-get dape--variable :type) "")
+                                 (dape--variable-name dape--variable))
                   nil nil default))))
 
 (dape--buffer-map dape-info-variable-value-map dape-info-variable-edit)
@@ -4733,10 +4740,7 @@ current buffer with CONN config."
   "Add variable OBJECT with REFERENCE and PATH to TABLE.
 TEST-EXPANDED is called with PATH and OBJECT to determine if recursive
 calls should continue.  If NO-HANDLES is non-nil skip + - handles."
-  (let* ((name (or (plist-get object :name) ""))
-         (name (if (string-empty-p name)
-                   (or (plist-get object :evaluateName) "")
-                 name))
+  (let* ((name (dape--variable-name object))
          (type (or (plist-get object :type) ""))
          (value (or (plist-get object :value)
                     (plist-get object :result)

Reply via email to