a #f array is the null pointer
authorAndy Wingo <wingo@pobox.com>
Tue, 5 Feb 2013 17:43:19 +0000 (18:43 +0100)
committerAndy Wingo <wingo@pobox.com>
Tue, 5 Feb 2013 17:43:19 +0000 (18:43 +0100)
* figl/gl/types.scm (array->pointer, define-array-foreign-type): Allow
  #f to indicate a null pointer.

figl/gl/types.scm

index e6df6e3..297ea5f 100644 (file)
 (define-simple-foreign-type void-* '*)
 (define-simple-foreign-type const-GLvoid-* '*)
 
+(define (array->pointer x)
+  (lambda (x)
+    (if x
+        (ffi:bytevector->pointer x)
+        ffi:%null-pointer)))
+
 (define-syntax define-array-foreign-type
   (syntax-rules ()
     ((_ name element-type)
      (define-foreign-type name '*
-       ffi:bytevector->pointer
+       array->pointer
        (lambda (x) x)))))
 
 (define-array-foreign-type GLboolean-* GLboolean)