Changeset 15578


Ignore:
Timestamp:
05/23/22 06:23:38 (10 months ago)
Author:
Mark Evenson
Message:

Fix DISASSEMBLE in some situations by falling back to funcall

Originally part of <https://github.com/armedbear/abcl/pull/437/>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/disassemble.lisp

    r15569 r15578  
    149149              (if (or (java:jinstance-of-p classloader "org.armedbear.lisp.MemoryClassLoader")
    150150                      (java:jinstance-of-p classloader "org.armedbear.lisp.FaslClassLoader"))
    151                   (disassemble-bytes
    152                    (java:jcall "getFunctionClassBytes" classloader class))
     151                  (disassemble-bytes
     152                   (or
     153                    (ignore-errors
     154                     (java:jcall "getFunctionClassBytes" classloader class))
     155                    ;;; alanr found that in certain situations (under
     156                    ;;; OSGI?) that one has to explicitly FUNCALL the
     157                    ;;; function slot, so we fall back to that strategy.
     158                    (ignore-errors
     159                     (funcall (java:jfield "org.armedbear.lisp.Function" "FUNCTION_CLASS_BYTES") function))))
    153160                  (disassemble-bytes
    154161                   (read-byte-array-from-stream
Note: See TracChangeset for help on using the changeset viewer.