From 3b2ec4790da6b3f64189a58896957ac63169dd5e Mon Sep 17 00:00:00 2001 Message-Id: <3b2ec4790da6b3f64189a58896957ac63169dd5e.1714169781.git.mdw@distorted.org.uk> From: Mark Wooding Date: Tue, 15 May 2018 11:39:03 +0100 Subject: [PATCH] src/method-impl.lisp: Initialize `suppliedp' flags properly. Organization: Straylight/Edgeware From: Mark Wooding More foolishness. The standalone C library gets this right, embarrassingly enough. --- src/method-impl.lisp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/method-impl.lisp b/src/method-impl.lisp index cbc7537..4bf3214 100644 --- a/src/method-impl.lisp +++ b/src/method-impl.lisp @@ -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))) -- [mdw]