mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-15 22:01:36 -08:00
In new-cmp/cmpbackend.lsp, added missing indirection in an argument to cl_parse_key()
This commit is contained in:
parent
3ad041e968
commit
41998701ac
1 changed files with 6 additions and 1 deletions
|
|
@ -263,13 +263,18 @@
|
|||
(defun c2varargs-rest-op (dest-loc nargs-loc varargs-loc nkeys
|
||||
keywords-loc allow-other-keys)
|
||||
(if (not (or keywords-loc allow-other-keys))
|
||||
;; Simple case: we do not need to parse keyword arguments, just
|
||||
;; collect all &rest
|
||||
(set-loc (if (simple-varargs-loc-p varargs-loc)
|
||||
'(c-inline (:object) "cl_grab_rest_args(args)" () t nil)
|
||||
'(c-inline (:object) "cl_grab_rest_args(cl_args)" () t nil))
|
||||
dest-loc)
|
||||
;; More complicated case: we may need to parse keyword arguments,
|
||||
;; collect all remaining arguments in &rest and check or not for
|
||||
;; the presence of unknown keywords.
|
||||
(progn
|
||||
(if keywords-loc
|
||||
(wt-nl "cl_parse_key(cl_args," nkeys "," keywords-loc ",keyvars")
|
||||
(wt-nl "cl_parse_key(cl_args," nkeys ",&(" keywords-loc "),keyvars")
|
||||
(wt-nl "cl_parse_key(cl_args,0,NULL,NULL"))
|
||||
(if (and dest-loc (not (eq dest-loc 'TRASH)))
|
||||
(wt ",(cl_object*)&" dest-loc)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue