;; License along with this library; if not, write to the Free Software
;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-;; $Id: glib.lisp,v 1.26 2005/02/10 00:12:04 espen Exp $
+;; $Id: glib.lisp,v 1.28 2005/04/17 21:44:27 espen Exp $
(in-package "GLIB")
;; (declare (ignore address)))
(defun copy-memory (from length &optional (to (allocate-memory length)))
- (;#+cmu kernel:system-area-copy
- ;#+sbcl sb-impl::system-area-copy
- system-area-copy from 0 to 0 (* 8 length))
+ #+cmu(system-area-copy from 0 to 0 (* 8 length))
+ #+sbcl(system-area-ub8-copy from 0 to 0 length)
to)
(deallocate-memory location))
-(defmethod alien-type ((type (eql 'vector-null)) &rest args)
+(defmethod alien-type ((type (eql 'null-terminated-vector)) &rest args)
(declare (ignore type args))
(alien-type 'pointer))
-(defmethod size-of ((type (eql 'vector-null)) &rest args)
+(defmethod size-of ((type (eql 'null-terminated-vector)) &rest args)
(declare (ignore type args))
(alien-type 'pointer))
-(defmethod writer-function ((type (eql 'vector-null)) &rest args)
+(defmethod writer-function ((type (eql 'null-terminated-vector)) &rest args)
(declare (ignore type))
- (destructuring-bind (element-type &optional (length '*)) args
+ (destructuring-bind (element-type) args
(unless (eq (alien-type element-type) (alien-type 'pointer))
(error "Elements in null-terminated vectors need to be of pointer types"))
#'(lambda (vector location &optional (offset 0))
(sap-ref-sap location offset)
(make-0-vector element-type vector)))))
-(defmethod reader-function ((type (eql 'vector-null)) &rest args)
+(defmethod reader-function ((type (eql 'null-terminated-vector)) &rest args)
(declare (ignore type))
- (destructuring-bind (element-type &optional (length '*)) args
+ (destructuring-bind (element-type) args
(unless (eq (alien-type element-type) (alien-type 'pointer))
(error "Elements in null-terminated vectors need to be of pointer types"))
#'(lambda (location &optional (offset 0))
(map-0-vector 'vector #'identity (sap-ref-sap location offset)
element-type)))))
-(defmethod destroy-function ((type (eql 'vector-null)) &rest args)
+(defmethod destroy-function ((type (eql 'null-terminated-vector)) &rest args)
(declare (ignore type))
- (destructuring-bind (element-type &optional (length '*)) args
+ (destructuring-bind (element-type) args
(unless (eq (alien-type element-type) (alien-type 'pointer))
(error "Elements in null-terminated vectors need to be of pointer types"))
#'(lambda (location &optional (offset 0))
(unless (null-pointer-p (sap-ref-sap location offset))
- (destroy-c-vector
+ (destroy-0-vector
(sap-ref-sap location offset) element-type)
(setf (sap-ref-sap location offset) (make-pointer 0))))))
-(defmethod unbound-value ((type (eql 'vector-null)) &rest args)
- (declare (ignore args))
+(defmethod unbound-value ((type (eql 'null-terminated-vector)) &rest args)
+ (declare (ignore type args))
(values t nil))