X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/sod/blobdiff_plain/1ec065092f42b4b0be3dcb833f3f5f24451701fd..b5212fc74fbd59a5875143337efcfcf4d842f7e1:/src/method-impl.lisp diff --git a/src/method-impl.lisp b/src/method-impl.lisp index 91c22bb..d0c7a54 100644 --- a/src/method-impl.lisp +++ b/src/method-impl.lisp @@ -272,6 +272,9 @@ (defmethod sod-message-keyword-argument-lists (c-function-keywords (sod-method-type method)))) direct-methods)))) +(defmethod sod-message-check-methods + ((message sod-message) (class sod-class) direct-methods) + (compute-effective-method-keyword-arguments message class direct-methods)) (defmethod shared-initialize :after ((method effective-method) slot-names &key direct-methods) @@ -552,7 +555,7 @@ (defun make-keyword-parser-function (codegen method tag set keywords) (codegen-push codegen) (call "aap" "va_arg" "*ap" (c-type (* va-list))) (call :void name "kw" "aap" *null-pointer* 0) - (setf va-act (namecheck "k" "kw.va_list" + (setf va-act (namecheck "k" "kw.valist" (codegen-pop-block codegen) va-act)) ;; Finish up the varargs loop. @@ -578,7 +581,7 @@ (defun make-keyword-parser-function (codegen method tag set keywords) (codegen-push codegen) (convert "aap" (c-type (* va-list))) (call :void name "kw" "aap" *null-pointer* 0) - (setf tab-act (namecheck "v->kw" "kw.va_list" + (setf tab-act (namecheck "v->kw" "kw.valist" (codegen-pop-block codegen) tab-act)) ;; Finish off the table loop.