projects
/
jscl.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8e39cfe
)
FFI funcall
author
David Vázquez
<davazp@gmail.com>
Thu, 6 Jun 2013 11:55:35 +0000
(12:55 +0100)
committer
David Vázquez
<davazp@gmail.com>
Thu, 6 Jun 2013 11:55:35 +0000
(12:55 +0100)
src/compiler.lisp
patch
|
blob
|
history
diff --git
a/src/compiler.lisp
b/src/compiler.lisp
index
a98e6b6
..
1d1ea55
100644
(file)
--- a/
src/compiler.lisp
+++ b/
src/compiler.lisp
@@
-1417,7
+1417,7
@@
(mapcar #'ls-compile args)) ", ") ")")))
(unless (or (symbolp function)
(and (consp function)
(mapcar #'ls-compile args)) ", ") ")")))
(unless (or (symbolp function)
(and (consp function)
- (eq (car function) 'lambda)))
+ (member (car function) '(lambda oget))))
(error "Bad function designator `~S'" function))
(cond
((translate-function function)
(error "Bad function designator `~S'" function))
(cond
((translate-function function)
@@
-1426,8
+1426,15
@@
#+jscl (eq (symbol-package function) (find-package "COMMON-LISP"))
#-jscl t)
(code (ls-compile `',function) ".fvalue" arglist))
#+jscl (eq (symbol-package function) (find-package "COMMON-LISP"))
#-jscl t)
(code (ls-compile `',function) ".fvalue" arglist))
+ #+jscl
+ ((symbolp function)
+ (code (ls-compile `#',function) arglist))
+ ((and (consp function) (eq (car function) 'lambda))
+ (code (ls-compile `#',function) arglist))
+ ((and (consp function) (eq (car function) 'oget))
+ (code (ls-compile function) arglist))
(t
(t
- (code (ls-compile `#',function) arglist)))))
+ (error "Bad function descriptor")))))
(defun ls-compile-block (sexps &optional return-last-p decls-allowed-p)
(multiple-value-bind (sexps decls)
(defun ls-compile-block (sexps &optional return-last-p decls-allowed-p)
(multiple-value-bind (sexps decls)