X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/3dca7758421664a838c54b273bd9221f02072045..e43d353268fc869045f757932d78d6073db9de6e:/src/method-impl.lisp?ds=sidebyside diff --git a/src/method-impl.lisp b/src/method-impl.lisp index 6c9b28d..6f22a14 100644 --- a/src/method-impl.lisp +++ b/src/method-impl.lisp @@ -7,7 +7,7 @@ ;;;----- Licensing notice --------------------------------------------------- ;;; -;;; This file is part of the Sensble Object Design, an object system for C. +;;; This file is part of the Sensible Object Design, an object system for C. ;;; ;;; SOD is free software; you can redistribute it and/or modify ;;; it under the terms of the GNU General Public License as published by @@ -95,7 +95,7 @@ ;;;-------------------------------------------------------------------------- ;;; Direct method classes. -(export 'basic-direct-method) +(export '(basic-direct-method sod-method-role)) (defclass basic-direct-method (sod-method) ((role :initarg :role :type symbol :reader sod-method-role) (function-type :type c-function-type :reader sod-method-function-type)) @@ -205,7 +205,9 @@ ;;;-------------------------------------------------------------------------- ;;; Effective method classes. -(export 'basic-effective-method) +(export '(basic-effective-method + effective-method-around-methods effective-method-before-methods + effective-method-after-methods)) (defclass basic-effective-method (effective-method) ((around-methods :initarg :around-methods :initform nil :type list :reader effective-method-around-methods) @@ -453,13 +455,15 @@ . raw-entry-args)))) (codegen-push codegen) (ensure-var codegen *sod-ap* (c-type va-list)) - (emit-inst codegen - (make-va-start-inst *sod-ap* - (argument-name parm-n))) (convert-stmts codegen entry-target return-type (lambda (target) - (deliver-expr codegen target call))) - (emit-inst codegen (make-va-end-inst *sod-ap*)) + (emit-inst codegen + (make-va-start-inst + *sod-ap* + (argument-name parm-n))) + (deliver-expr codegen target call) + (emit-inst codegen + (make-va-end-inst *sod-ap*)))) (codegen-pop-function codegen main main-type)))))) ;; Generate the method body. We'll work out what to do with it later. @@ -540,7 +544,7 @@ (defmethod primary-method-class ((message standard-message)) 'delegating-direct-method) -(defmethod message-effective-method-class ((message standard-message)) +(defmethod sod-message-effective-method-class ((message standard-message)) 'standard-effective-method) (defmethod simple-method-body