When using the jde-xref feature, I have experienced a problem.

Syndrome: After jde-xref-make-xref-db, I moved the cursor to a method
in one of my classes ClassA and did a C-c C-v a, I got this in the
mini-buffer:

Wrong type argument: listp, "com.x.x.ClassB"

The "ClassB" is the super class of ClassA.

C-c C-v n works fine.

I took a look at the code in jde-xref.el.  I seems to me that the
offending section is in this area:

(defun jde-xref-next-caller ()
 "If there are items still on the caller stack, pop the first one off
and show it"
 (interactive)
 (if jde-xref-stack
     (if (listp (car jde-xref-stack))
 (jde-xref-goto-caller (pop jde-xref-stack))
(jde-xref-goto-caller (pop (pop jde-xref-stack)))) ;; skip over called classname
   (message "No more calls")))

So if jde-xref-stack is not a list, it still pop it anyway in the else block.

I don't understand the code good enough to fix it.  But I like the
feature very much and hope someone can take a look at it, or help me a
little me to understand this so that I can fix it.

Regards,

Ping

Reply via email to