;;;
;;; SOD is free software; you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published by
;;;
;;; SOD is free software; you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published by
;;;--------------------------------------------------------------------------
;;; Direct method classes.
;;;--------------------------------------------------------------------------
;;; Direct method classes.
(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))
(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))
;;;--------------------------------------------------------------------------
;;; Effective method classes.
;;;--------------------------------------------------------------------------
;;; Effective method classes.
(defclass basic-effective-method (effective-method)
((around-methods :initarg :around-methods :initform nil
:type list :reader effective-method-around-methods)
(defclass basic-effective-method (effective-method)
((around-methods :initarg :around-methods :initform nil
:type list :reader effective-method-around-methods)
- (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.
(codegen-pop-function codegen main main-type))))))
;; Generate the method body. We'll work out what to do with it later.