Changeset 5759
- Timestamp:
- Jan 20, 2007, 10:53:46 PM (18 years ago)
- Location:
- trunk/ccl/lib
- Files:
-
- 2 edited
-
ffi-darwinppc32.lisp (modified) (2 diffs)
-
ffi-darwinppc64.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/lib/ffi-darwinppc32.lisp
r5746 r5759 57 57 ;;; integer argument "type" specifier to denote this. 58 58 59 (defun darwin32::expand-ff-call (callform args )59 (defun darwin32::expand-ff-call (callform args &key (arg-coerce #'null-coerce-foreign-arg) (result-coerce #'null-coerce-foreign-result)) 60 60 (let* ((result-type-spec (or (car (last args)) :void)) 61 61 (enclosing-form nil)) … … 106 106 (progn 107 107 (argforms (foreign-type-to-representation-type ftype)) 108 (argforms arg-value-form)))))))108 (argforms (funcall arg-coerce arg-type-spec arg-value-form)))))))) 109 109 (argforms (foreign-type-to-representation-type result-type)) 110 (let* ((call `(,@callform ,@(argforms))))110 (let* ((call (funcall result-coerce result-type-spec `(,@callform ,@(argforms))))) 111 111 (if enclosing-form 112 112 `(,@enclosing-form ,call) -
trunk/ccl/lib/ffi-darwinppc64.lisp
r5747 r5759 163 163 164 164 165 (defun darwin64::expand-ff-call (callform args )165 (defun darwin64::expand-ff-call (callform args &key (arg-coerce #'null-coerce-foreign-arg) (result-coerce #'null-coerce-foreign-result)) 166 166 (let* ((result-type-spec (or (car (last args)) :void)) 167 167 (regbuf nil) … … 234 234 (progn 235 235 (argforms (foreign-type-to-representation-type ftype)) 236 (argforms arg-value-form)))))))236 (argforms (funcall arg-coerce arg-type-spec arg-value-form)))))))) 237 237 (argforms (foreign-type-to-representation-type result-type)) 238 (let* ((call `(,@callform ,@(argforms))))238 (let* ((call (funcall result-coerce result-type-spec `(,@callform ,@(argforms))))) 239 239 (when structure-arg-temp 240 240 (setq call `(let* ((,structure-arg-temp (%null-ptr)))
Note:
See TracChangeset
for help on using the changeset viewer.
