Skip to content
  • Owen Taylor's avatar
    Add "storage type" to the typelib data for enums · a2651795
    Owen Taylor authored
    In order to set and get enum and flag fields in structures, we need
    to know the integral type that the enumeration is stored as. We are already
    computing that at compile time in order to compute struct offsets, so the
    easiest thing to do is to save that in the typelib.
    
    * docs/typelib-format.txt girepository/girnode.[ch] girepository/giroffsets.c
    girepository/gtypelib.h: Add 'storage_type' to the typelib format for EnumBlob
    and compute and save it at compile time.
    
    * girepository/girepository.h girepository/ginfo.c:
    Add g_enum_info_get_storage_type().
    
    * girepository/gfield.c: Implement reading and writing enum and flags fields
    based on the storage type.
    
    http://bugzilla.gnome.org/show_bug.cgi?id=561296
    
    svn path=/trunk/; revision=944
    a2651795