1. 10 Jul, 2013 3 commits
    • Mike Gorse's avatar
      Unref interface info when fetching enums or flags · ce0ad706
      Mike Gorse authored
      When calling g_type_info_get_interface, the resulting interface should
      be dereferenced by calling g_base_info_unref.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=703960
      ce0ad706
    • Daniel Drake's avatar
      Speed up MRO calculation · a93755dd
      Daniel Drake authored
      Optimize gi.type.mro() with the following observations and tricks:
      
      1. Python prepares all the base classes before trying to calculate the
         MRO of the current one (it first needs to populate __bases__, for
         example). So we can assume that the base class MRO is already available
         in __mro__ and this will have been previously calculated (by us, in the
         case of gi classes). This avoids repeating a lot of MRO-calculating work,
         and also avoids (re)calculating MROs for inheritance chains that don't
         have any gi classes in them anyway.
      
      2. With that simplification in place, we can avoid recursion, which is not
         all that great in Python...
      
      3. ...except in the uncommon case of a Python2 old-style classes, where
         __mro__ is not available. There doesn't seem to be any existing
         function to calculate or read MRO of old-style python classes, so just
         keep doing as before: calculate the C3 MRO of the old-style class via
         recursion. That behaviour is not really correct, and the recursion is
         not desirable, so we print a warning here.
      
      This makes the "hello world" Sugar app start up approximately 0.5 seconds
      faster on XO-1.5.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=703829
      a93755dd
    • Daniel Drake's avatar
      tests: Add tests for MRO override · 7aca9578
      Daniel Drake authored
      Add tests for the MRO override to prevent against unintended
      behaviour changes.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=703829
      7aca9578
  2. 07 Jul, 2013 1 commit
  3. 06 Jul, 2013 1 commit
  4. 03 Jul, 2013 6 commits
  5. 02 Jul, 2013 1 commit
  6. 21 Jun, 2013 2 commits
  7. 29 May, 2013 1 commit
  8. 28 May, 2013 2 commits
  9. 24 May, 2013 1 commit
  10. 13 May, 2013 2 commits
  11. 12 May, 2013 2 commits
  12. 07 May, 2013 1 commit
  13. 03 May, 2013 2 commits
  14. 30 Apr, 2013 2 commits
  15. 29 Apr, 2013 1 commit
  16. 28 Apr, 2013 3 commits
  17. 25 Apr, 2013 5 commits
  18. 23 Apr, 2013 1 commit
  19. 22 Apr, 2013 2 commits
  20. 20 Apr, 2013 1 commit