+(defbinding %color-copy () pointer
+ (location pointer))
+
+(defmethod allocate-foreign ((color color) &rest initargs)
+ (declare (ignore color initargs))
+ ;; Color structs are allocated as memory chunks by gdk, and since
+ ;; there is no gdk_color_new we have to use this hack to get a new
+ ;; color chunk
+ (with-memory (location #.(foreign-size (find-class 'color)))
+ (%color-copy location)))
+