- (let* ((class-name (or name (class-name class)))
- (type-number
- (cond
- ((and alien-name type-init)
- (error
- "Specify either :type-init or :alien-name for class ~A"
- class-name))
- (alien-name (type-number-from-alien-name (first alien-name)))
- (type-init
- (funcall (alien-function (first type-init) '(unsigned 32))))
- (t
- (or
- (type-number-from-alien-name
- (default-alien-type-name class-name) nil)
- (funcall
- (alien-function
- (default-alien-fname (format nil "~A_get_type" class-name))
- '(unsigned 32))))))))
- (setf (find-type-number class) type-number)))
-
-
-(defmethod validate-superclass
- ((class boxed-class) (super pcl::standard-class))
- (subtypep (class-name super) 'boxed))
-
-
-;;;; Initializing type numbers
-
-(setf (alien-type-name 'boxed) "GBoxed")
+;;;; NULL terminated vector of strings
+
+(deftype strings () '(null-terminated-vector string))
+(register-type 'strings '|g_strv_get_type|)