Re: Moving to pointer-sized GType?



Dan Winship <danw ximian com> writes:
> > The change will be fully source compatible for code that correctly uses 
> > GType, but unfortunately there are some places in our codebases that use 
> > uint instead of GType/GtkType to store/handle types, and these will break 
> > on 64bit architectures (warning + segfault), but silently work on 32bit 
> > architectures.
> 
> Adding more ways for the teeming 32bit-only hordes to unwittingly break
> things for 64bit architectures seems bad. Couldn't you just make GType
> be a gpointer and use GPOINTER_TO_UINT or whatever in the few places
> where you want to think of them as integers? (Which would only be inside
> the type system itself, right?)

The change we want to make is to stuff pointers in ints. i.e. GType
would actually be a pointer, but we'd keep "typedef guint GType".

This breaks on 64-bit since a pointer can't survive being assigned to
a 32-bit guint.

Havoc




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]