Changeset 11189


Ignore:
Timestamp:
Oct 21, 2008, 11:23:24 PM (11 years ago)
Author:
gb
Message:

DEFCALLBACK: stop accepting the obscure and mostly unsupported
:MONITOR-EXCEPTION-PORTS keyword. Start accepting a :DISCARD-STACK-ARGS
keyword; if it's set and the callback-bindings hook returns a non-null
8th value, pass that value into the runtime callback creation code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lib/macros.lisp

    r11138 r11189  
    25352535         (result-type-spec :void)
    25362536         (args args)
     2537         (discard-stack-args nil)
    25372538         (woi nil)
    2538          (monitor nil)
    25392539         (need-struct-arg)
    25402540         (struct-return-arg-name)
     
    25512551        (if (eq (car args) :without-interrupts)
    25522552          (setq woi (cadr args) args (cddr args))
    2553           (if (eq (car args) :monitor-exception-ports)
    2554             (setq monitor (cadr args) args (cddr args))
    2555            
     2553          (if (eq (car args) :discard-stack-args)
     2554            (setq discard-stack-args t args (cdr args))
    25562555            (if (eq (car args) :error-return)
    25572556              (setq error-return
     
    25632562                  (arg-specs (pop args))
    25642563                  (arg-names (pop args))))))))
    2565       (multiple-value-bind (rlets lets dynamic-extent-names inits foreign-return-type fp-args-form error-return-offset)
     2564      (multiple-value-bind (rlets lets dynamic-extent-names inits foreign-return-type fp-args-form error-return-offset num-arg-bytes)
    25662565          (funcall (ftd-callback-bindings-function *target-ftd*)
    25672566                   stack-ptr fp-args-ptr (arg-names) (arg-specs) result-type-spec struct-return-arg-name)
     2567        (unless num-arg-bytes (setq num-arg-bytes 0))
    25682568        (multiple-value-bind (body decls doc) (parse-body body env t)
    25692569          `(progn
     
    25932593                ,doc
    25942594              ,woi
    2595               ,monitor)))))))
     2595              ,(if discard-stack-args num-arg-bytes 0))))))))
    25962596
    25972597
Note: See TracChangeset for help on using the changeset viewer.