X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/d5fdd49e70b734b791eb907706f92da5775e2a8b..e895be217c3be6769708da17c9ae87cb22db040e:/src/method-impl.lisp diff --git a/src/method-impl.lisp b/src/method-impl.lisp index be33ecd..c1e1b24 100644 --- a/src/method-impl.lisp +++ b/src/method-impl.lisp @@ -62,7 +62,8 @@ (defmethod sod-message-receiver-type ((message sod-message) (class sod-class)) - (c-type (* (class class)))) + (c-type (* (class class + (and (sod-message-readonly-p message) :const))))) (export 'simple-message) (defclass simple-message (basic-message) @@ -684,7 +685,10 @@ ;; Effective method function details. (emf-name (effective-method-function-name method)) - (ilayout-type (c-type (* (struct (ilayout-struct-tag class))))) + (ilayout-type (c-type (* (struct (ilayout-struct-tag class) + (and (sod-message-readonly-p + message) + :const))))) (emf-type (c-type (fun (lisp return-type) ("sod__obj" (lisp ilayout-type)) . entry-args))))