Skip to content
  1. Nov 12, 2012
    • Emmanuele Bassi's avatar
      property: Add direct access to generated getters · 61342111
      Emmanuele Bassi authored
      This is mostly a WIP/proof of concept patch on top of GProperty. the
      numbers from the performance test case say that we don't gain much, if
      at all, by checking if the property maps to a direct field offset, and
      we get the pointer to the struct member.
      61342111
    • Emmanuele Bassi's avatar
      gobject: Add GProperty · 72e08fb8
      Emmanuele Bassi authored
      Dealing with GParamSpec is tedious and less efficient than necessary;
      property definitions should be able to either directly access a struct
      field or specify the accessors pair that control a property. On top of
      that, most of the property and accessor definition can be autogenerated
      from simple pre-processor directives.
      
      So, here's to you GProperty.
      
      GProperty is a GParamSpec sub-class that encapsulates all the types
      inside a single, opaque structure (to avoid leaking out implementation
      details); a GProperty can access the structure member holding the value
      of the property, or invoke the accessor functions passed to its
      constructor. Type safety is maintained through the GType system and
      without having to use GValue.
      
      Along with GProperty, this patch introduces a series of macros for
      automating the declaration and definition of property accessor functions,
      and for automating the collection and lcopy of values without going
      through GValue.
      
      GObject will recognize whether a GParamSpec used to set or get
      a property is really a GProperty, and thus will shortcircuit most of
      the GValue-based marshalled code, preferring the direct C function
      and direct argument collection instead of boxing/unboxing of GValues.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=648526
      72e08fb8
  2. Nov 11, 2012
  3. Nov 10, 2012
  4. Nov 09, 2012
  5. Nov 08, 2012
  6. Nov 07, 2012
  7. Nov 06, 2012
  8. Nov 05, 2012
  9. Nov 04, 2012
  10. Nov 03, 2012
  11. Nov 02, 2012