src/c-types-{proto,impl}.lisp: Add `:export' parameter to `defctype'.
[sod] / src / method-impl.lisp
index 6c9b28d..6f22a14 100644 (file)
@@ -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))
 ;;;--------------------------------------------------------------------------
 ;;; 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)
                                               . 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.
 (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