chiark / gitweb /
src/method-impl.lisp: Initialize `suppliedp' flags properly.
authorMark Wooding <mdw@distorted.org.uk>
Tue, 15 May 2018 10:39:03 +0000 (11:39 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Fri, 8 Jun 2018 18:58:40 +0000 (19:58 +0100)
More foolishness.  The standalone C library gets this right,
embarrassingly enough.

src/method-impl.lisp

index cbc7537..4bf3214 100644 (file)
@@ -793,6 +793,14 @@ (defmethod compute-effective-method-body :around
                    (*keyword-struct-disposition* :local))
               (ensure-var codegen *sod-keywords* (c-type (struct tag)))
               (make-keyword-parser-function codegen method tag set keywords)
+              (emit-insts codegen
+                          (mapcar (lambda (keyword)
+                                    (make-set-inst
+                                     (format nil "~A.~A__suppliedp"
+                                             *sod-keywords*
+                                             (argument-name keyword))
+                                     0))
+                                  keywords))
               (parse-keywords (lambda ()
                                 (call :void name kw-addr ap-addr
                                       *null-pointer* 0)))