X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Flinkage-table.lisp;h=3ccfb4c1d6fdcd15871416edd4971cb1c1f0bf5b;hb=69ef68ba7393e3492c1b4a756d1140f71c2922bc;hp=74e461dafb932ed2ba380d976e3699fa3453db30;hpb=5e1fcdac979db9a6aebe69531229355def8c0f90;p=sbcl.git diff --git a/src/code/linkage-table.lisp b/src/code/linkage-table.lisp index 74e461d..3ccfb4c 100644 --- a/src/code/linkage-table.lisp +++ b/src/code/linkage-table.lisp @@ -48,7 +48,7 @@ (let ((table-address (+ (* (hash-table-count *linkage-info*) sb!vm:linkage-table-entry-size) sb!vm:linkage-table-space-start)) - (real-address (get-dynamic-foreign-symbol-address name))) + (real-address (get-dynamic-foreign-symbol-address name datap))) (aver real-address) (unless (< table-address sb!vm:linkage-table-space-end) (error "Linkage-table full (~D entries): cannot link ~S." @@ -74,9 +74,10 @@ (defun update-linkage-table () ;; Doesn't take care of it's own locking -- callers are responsible (maphash (lambda (name info) - (let ((datap (linkage-info-datap info)) - (table-address (linkage-info-address info)) - (real-address (get-dynamic-foreign-symbol-address name))) + (let* ((datap (linkage-info-datap info)) + (table-address (linkage-info-address info)) + (real-address + (get-dynamic-foreign-symbol-address name datap))) (aver (and table-address real-address)) (write-linkage-table-entry table-address real-address