[decompiler] Better support for non-virtual methods (#543)

* fix up nonvirtual method calls and stack new method calls

* look at final in compiler too
This commit is contained in:
water111
2021-05-30 22:52:40 -04:00
committed by GitHub
parent b1a76b2291
commit c4f44e265f
18 changed files with 217 additions and 139 deletions
@@ -95,7 +95,7 @@
;; definition for method 12 of type connection
(defmethod belongs-to-process? connection ((obj connection) (arg0 process))
(= arg0 ((method-of-type connection get-process) obj))
(= arg0 (get-process obj))
)
;; definition for method 2 of type connection
@@ -253,25 +253,25 @@
(format #t "~Talive-list:~%")
(let ((s5-0 *print-column*))
(set! *print-column* (+ *print-column* (the-as uint 64)))
((method-of-type connectable inspect) (-> obj alive-list))
(inspect (-> obj alive-list))
(set! *print-column* s5-0)
)
(format #t "~Talive-list-end:~%")
(let ((s5-1 *print-column*))
(set! *print-column* (+ *print-column* (the-as uint 64)))
((method-of-type connectable inspect) (-> obj alive-list-end))
(inspect (-> obj alive-list-end))
(set! *print-column* s5-1)
)
(format #t "~Tdead-list:~%")
(let ((s5-2 *print-column*))
(set! *print-column* (+ *print-column* (the-as uint 64)))
((method-of-type connectable inspect) (-> obj dead-list))
(inspect (-> obj dead-list))
(set! *print-column* s5-2)
)
(format #t "~Tdead-list-end:~%")
(let ((s5-3 *print-column*))
(set! *print-column* (+ *print-column* (the-as uint 64)))
((method-of-type connectable inspect) (-> obj dead-list-end))
(inspect (-> obj dead-list-end))
(set! *print-column* s5-3)
)
(format #t "~Tdata[~D]: @ #x~X~%" (-> obj allocated-length) (-> obj data))
@@ -427,7 +427,7 @@
;; definition for method 13 of type connection
(defmethod move-to-dead connection ((obj connection))
(let ((v1-1 ((method-of-type connection get-engine) obj)))
(let ((v1-1 (get-engine obj)))
(set! (-> obj prev0 next0) (-> obj next0))
(set! (-> obj next0 prev0) (-> obj prev0))
(set! (-> obj prev1 next1) (-> obj next1))