# HG changeset patch # Parent ec14346bfd1efadc882c52f910c439bd5e934407 Refactor to remove compile warnings. diff -r ec14346bfd1e src/cffi-abcl.lisp --- a/src/cffi-abcl.lisp Wed Oct 17 12:21:27 2012 +0200 +++ b/src/cffi-abcl.lisp Wed Oct 17 12:27:44 2012 +0200 @@ -35,20 +35,8 @@ ;;; (require 'abcl-contrib) ;;; (require 'jna) - -(handler-case - (progn - (require :abcl-contrib) - (require :jna)) - (t (condition) - (progn - (warn "~&For Lisp implementation version: ~S~&Failed to load JNA via ABCL-CONTRIB on because: ~S~%Attempting to monkey patch via ABCL-ASDF." - (lisp-implementation-version) - condition) - (require :abcl-asdf) - (java:add-to-classpath (abcl-asdf:resolve-dependencies "com.sun.jna" "jna" "3.0.9")) - (provide :jna)))) - +(require 'abcl-contrib) +(require 'jna) ;;; This is a preliminary version that will have to be cleaned up, ;;; optimized, etc. Nevertheless, it passes all of the relevant CFFI @@ -97,7 +85,7 @@ :key #'jfield-name :test #'string=))) (jcall (jmethod "java.lang.reflect.Field" "setAccessible" "boolean") - field (make-immediate-object t :boolean)) + field +true+) (jcall (jmethod "java.lang.reflect.Field" "get" "java.lang.Object") field instance))) @@ -109,7 +97,7 @@ :key #'jmethod-name :test #'string=))) (jcall (jmethod "java.lang.reflect.Method" "setAccessible" "boolean") - method (make-immediate-object t :boolean)) + method +true+) method)) (defun private-jconstructor (class-name &rest params) @@ -124,7 +112,7 @@ "getDeclaredConstructors") (jclass class-name))))) (jcall (jmethod "java.lang.reflect.Constructor" "setAccessible" "boolean") - cons (make-immediate-object t :boolean)) + cons +true+) cons)) ;;;# Symbol Case @@ -254,7 +242,7 @@ ((:short :unsigned-short) "getShort"))) (defun lispify-value (value type) - (when (and (eq type :pointer) (null value)) + (when (and (eq type :pointer) (or (null value) (eq +null+ value))) (return-from lispify-value (null-pointer))) (when (or (eq type :long) (eq type :unsigned-long)) (setq value (jcall (jmethod "com.sun.jna.NativeLong" "longValue") value))) @@ -480,10 +468,9 @@ (defun load-class (class-bytes) "Load the Java byte[] array CLASS-BYTES as a Java class." - (let ((load-class-method - (jmethod "org.armedbear.lisp.JavaClassLoader" - "loadClassFromByteArray" "[B"))) - (jcall load-class-method java::*classloader* class-bytes))) + (jcall + (jmethod "org.armedbear.lisp.JavaClassLoader" "loadClassFromByteArray" "[B") + java::*classloader* class-bytes)) ;;; Test function: unused in CFFI (defun write-class (class-bytes pathname) @@ -527,9 +514,9 @@ "Returns a pointer to a foreign symbol NAME." (flet ((find-it (name library) (let ((p (ignore-errors - (jcall (private-jmethod "com.sun.jna.NativeLibrary" - "getSymbolAddress") - library name)))) + (jcall + (private-jmethod "com.sun.jna.NativeLibrary" "getSymbolAddress") + library name)))) (unless (null p) (make-pointer p))))) (if (eq library :default) diff -r ec14346bfd1e tests/GNUmakefile --- a/tests/GNUmakefile Wed Oct 17 12:21:27 2012 +0200 +++ b/tests/GNUmakefile Wed Oct 17 12:27:44 2012 +0200 @@ -43,7 +43,7 @@ endif else ifeq ($(OSTYPE), SunOS) -CFLAGS := -c -Wall -std=c99 -pedantic +CFLAGS := -m64 -c -Wall -std=c99 -pedantic else # Let's assume this is win32 SHLIB_EXT := .dll