X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/6bc944c3cebb89056d9ed0b53eff6260909291a9..c2438e62e7c3cf1b7006522cef61e8c6f797600b:/src/class-utilities.lisp diff --git a/src/class-utilities.lisp b/src/class-utilities.lisp index aa4ef17..0aec35a 100644 --- a/src/class-utilities.lisp +++ b/src/class-utilities.lisp @@ -160,7 +160,8 @@ (and (= (length message-args) (length method-args)) (every (lambda (message-arg method-arg) (if (eq message-arg :ellipsis) - (eq method-arg (c-type va-list)) + (c-type-equal-p (argument-type method-arg) + (c-type va-list)) (c-type-equal-p (argument-type message-arg) (argument-type method-arg)))) message-args method-args))) @@ -188,6 +189,10 @@ (defun vtmsgs-struct-tag (class super) (format nil "~A__vtmsgs_~A" class (sod-class-nickname super))) +(export 'vtable-union-tag) +(defun vtable-union-tag (class chain-head) + (format nil "~A__vtu_~A" class (sod-class-nickname chain-head))) + (export 'vtable-struct-tag) (defun vtable-struct-tag (class chain-head) (format nil "~A__vt_~A" class (sod-class-nickname chain-head))) @@ -197,7 +202,7 @@ (format nil "~A__vtable_~A" class (sod-class-nickname chain-head))) (export 'message-macro-name) -(defun message-macro-name (class message) - (format nil "~A_~A" class (sod-message-name message))) +(defun message-macro-name (class entry) + (format nil "~A_~A" class (method-entry-slot-name entry))) ;;;----- That's all, folks --------------------------------------------------