source: tags/pre_1_0_pre_hash_modifications/ccl/examples/jni.lisp @ 2475

Last change on this file since 2475 was 2475, checked in by anonymous, 14 years ago

This commit was manufactured by cvs2svn to create tag
'pre_1_0_pre_hash_modifications'.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 1.1 KB
Line 
1(eval-when (:compile-toplevel :execute)
2  (use-interface-dir :java))
3
4(eval-when (:compile-toplevel :load-toplevel :execute)
5  (open-shared-library "/System/Library/Frameworks/JavaVM.framework/JavaVM"))
6
7(defun %init-java-vm (&rest args)
8  (declare (dynamic-extent args))
9  (let* ((nargs (length args)))
10    (rlet ((initargs :<J>ava<VMI>nit<A>rgs)
11           (env (* :<JNIE>nv))
12           (vm (* :<J>ava<VM>)))
13      (%stack-block ((options (* nargs (record-length :<J>ava<VMO>ption))))
14        (do* ((i 0 (1+ i))
15              (args args (cdr args))
16              (p options (%inc-ptr p (record-length :<J>ava<VMO>ption))))
17             ((= i nargs))
18          (setf (pref p :<J>ava<VMO>ption.option<S>tring)
19                (car args)))
20        (setf (pref initargs :<J>ava<VMI>nit<A>rgs.version) #$JNI_VERSION_1_2
21              (pref initargs :<J>ava<VMI>nit<A>rgs.n<O>ptions) nargs
22              (pref initargs :<J>ava<VMI>nit<A>rgs.options) options
23              (pref initargs :<J>ava<VMI>nit<A>rgs.ignore<U>nrecognized) #$JNI_TRUE)
24        (let* ((result (#_JNI_CreateJavaVM  :monitor-exception-ports vm env initargs)))
25          (if (>= result 0)
26            (values (%get-ptr vm) (%get-ptr env))
27            (error "Can't create Java VM: result = ~d" result)))))))
28             
29             
Note: See TracBrowser for help on using the repository browser.