;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;; $Id: gtype.lisp,v 1.59 2007-01-02 18:39:42 espen Exp $
+;; $Id: gtype.lisp,v 1.61 2007-02-23 12:53:08 espen Exp $
(in-package "GLIB")
(defbinding type-init () nil)
(type-init)
-(deftype type-number () 'unsigned-long)
+(eval-when (:compile-toplevel :load-toplevel :execute)
+ (defbinding (bitsize-of-gtype "bitsize_of_gtype") () unsigned-int))
+
+(deftype type-number () `(unsigned-byte ,(bitsize-of-gtype)))
(deftype gtype () 'symbol)
;;;; Superclass for wrapping types in the glib type system
(eval-when (:compile-toplevel :load-toplevel :execute)
- (defclass ginstance (proxy)
+ (defclass ginstance (ref-counted-object)
(;(class :allocation :alien :type pointer :offset 0)
)
(:metaclass proxy-class)
(error "Object at ~A has an unkown type number: ~A"
location (%type-number-of-ginstance location)))))
-(define-type-method from-alien-form ((type ginstance) form &key (ref :copy))
- (call-next-method type form :ref ref))
-
-(define-type-method from-alien-function ((type ginstance) &key (ref :copy))
- (call-next-method type :ref ref))
-
;;;; Registering fundamental types