X-Git-Url: http://git.kpe.io/?p=uffi.git;a=blobdiff_plain;f=examples%2Farrays.lisp;h=474249dac8b6b6a1a9edbcc035a913917cc9ad5e;hp=75ff5a7a69c91f6d47fbbde782a2c80c27e26eeb;hb=b86fdf882156aa45dc6e8e93a158dedf506f4233;hpb=a95b9a217335917d96b8c0cced4f49c3e4846115 diff --git a/examples/arrays.lisp b/examples/arrays.lisp index 75ff5a7..474249d 100644 --- a/examples/arrays.lisp +++ b/examples/arrays.lisp @@ -7,13 +7,8 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Mar 2002 ;;;; -;;;; $Id: arrays.lisp,v 1.1 2002/09/30 10:02:36 kevin Exp $ +;;;; This file, part of UFFI, is Copyright (c) 2002-2010 by Kevin M. Rosenberg ;;;; -;;;; This file, part of UFFI, is Copyright (c) 2002 by Kevin M. Rosenberg -;;;; -;;;; UFFI users are granted the rights to distribute and use this software -;;;; as governed by the terms of the Lisp Lesser GNU Public License -;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. ;;;; ************************************************************************* (in-package :cl-user) @@ -21,6 +16,8 @@ (uffi:def-constant +column-length+ 10) (uffi:def-constant +row-length+ 10) +(uffi:def-foreign-type long-ptr (* :long)) + (defun test-array-1d () "Tests vector" (let ((a (uffi:allocate-foreign-object :long +column-length+))) @@ -33,24 +30,24 @@ (defun test-array-2d () "Tests 2d array" - (let ((a (uffi:allocate-foreign-object '(* :long) +row-length+))) + (let ((a (uffi:allocate-foreign-object 'long-ptr +row-length+))) (dotimes (r +row-length+) (declare (fixnum r)) (setf (uffi:deref-array a '(:array (* :long)) r) - (uffi:allocate-foreign-object :long +column-length+)) + (uffi:allocate-foreign-object :long +column-length+)) (let ((col (uffi:deref-array a '(:array (* :long)) r))) - (dotimes (c +column-length+) - (declare (fixnum c)) - (setf (uffi:deref-array col '(:array :long) c) (+ (* r +column-length+) c))))) + (dotimes (c +column-length+) + (declare (fixnum c)) + (setf (uffi:deref-array col '(:array :long) c) (+ (* r +column-length+) c))))) (dotimes (r +row-length+) (declare (fixnum r)) (format t "~&Row ~D: " r) (let ((col (uffi:deref-array a '(:array (* :long)) r))) - (dotimes (c +column-length+) - (declare (fixnum c)) - (let ((result (uffi:deref-array col '(:array :long) c))) - (format t "~d " result))))) + (dotimes (c +column-length+) + (declare (fixnum c)) + (let ((result (uffi:deref-array col '(:array :long) c))) + (format t "~d " result))))) (uffi:free-foreign-object a)) (values))