X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/85aa8b3e6716fedd4617dc8d76cd459c8a38cdc5..54ea6ee880f52c23279bf58262ca245b531d04b0:/src/method-proto.lisp diff --git a/src/method-proto.lisp b/src/method-proto.lisp index 7163e8c..ac662ca 100644 --- a/src/method-proto.lisp +++ b/src/method-proto.lisp @@ -338,13 +338,10 @@ ;;; Additional instructions. -;; HACK: use gensyms for the `class' and `expr' slots to avoid leaking the -;; slot names, because `expr' is exported by our package, and `class' is -;; actually from the `common-lisp' package. (definst convert-to-ilayout (stream :export t) - (#1=#:class chain-head #2=#:expr) + (%class chain-head %expr) (format stream "SOD_ILAYOUT(~@<~A, ~_~A, ~_~A~:>)" - #1# (sod-class-nickname chain-head) #2#)) + class (sod-class-nickname chain-head) expr)) ;;; Utilities. @@ -481,11 +478,13 @@ ((keyword-message-p message) (cons (make-argument *sod-key-pointer* (c-type (* (void :const)))) - raw-args)))) + raw-args)) + (t raw-args))) (*keyword-struct-disposition* (if (effective-method-keywords method) :pointer :null))) (codegen-push codegen) (ensure-ilayout-var codegen super) + (deliver-call codegen :void "SOD__IGNORE" "sod__obj") (when (keyword-message-p message) (if (eq *keyword-struct-disposition* :null) (deliver-call codegen :void "SOD__IGNORE" *sod-key-pointer*)