1. 14 Feb, 2020 3 commits
  2. 13 Feb, 2020 3 commits
  3. 12 Feb, 2020 4 commits
  4. 11 Feb, 2020 6 commits
    • Sebastian Dröge's avatar
      Merge branch 'docs-object-manager-example' into 'master' · d6886d89
      Sebastian Dröge authored
      docs: Don’t install object manager example separately
      
      See merge request GNOME/glib!1359
      d6886d89
    • Philip Withnall's avatar
      docs: Don’t install object manager example separately · 760c8ccb
      Philip Withnall authored
      The relevant parts of the generated example documentation are already
      `xi:include`d into the `migrating-gdbus.xml` page, so are turned into
      HTML there. Installing them separately means they also get installed
      into `/usr/share/gtk-doc/html/gdbus-object-manager-example/`, which
      seems redundant.
      Signed-off-by: Philip Withnall's avatarPhilip Withnall <withnall@endlessm.com>
      760c8ccb
    • Sebastian Dröge's avatar
    • Sebastian Dröge's avatar
      GMainContext - Move mutex unlocking in destructor right before freeing the mutex · 730a75fc
      Sebastian Dröge authored
      This does not have any behaviour changes but is cleaner. The mutex is
      only unlocked now after all operations on the context are done and right
      before freeing the mutex and the context itself.
      730a75fc
    • Sebastian Dröge's avatar
      GMainContext - Fix memory leaks and memory corruption when freeing sources while freeing a context · aa20167d
      Sebastian Dröge authored
      Instead of destroying sources directly while freeing the context, and
      potentially freeing them if this was the last reference to them, collect
      new references of all sources in a separate list before and at the same
      time invalidate their context so that they can't access it anymore. Only
      once all sources have their context invalidated, destroy them while
      still keeping a reference to them. Once all sources are destroyed we get
      rid of the additional references and free them if nothing else keeps a
      reference to them anymore.
      
      This fixes a regression introduced by 26056558 in 2012.
      
      The previous code that invalidated the context of each source and then
      destroyed it before going to the next source without keeping an
      additional reference caused memory leaks or memory corruption depending
      on the order of the sources in the sources lists.
      
      If a source was destroyed it might happen that this was the last
      reference to this source, and it would then be freed. This would cause
      the finalize function to be called, which might destroy and unref
      another source and potentially free it. This other source would then
      either
      - go through the normal free logic and change the intern linked list
        between the sources, while other sources that are unreffed as part of
        the main context freeing would not. As such the list would be in an
        inconsistent state and we might dereference freed memory.
      - go through the normal destroy and free logic but because the context
        pointer was already invalidated it would simply mark the source as
        destroyed without actually removing it from the context. This would
        then cause a memory leak because the reference owned by the context is
        not freed.
      
      Fixes https://github.com/gtk-rs/glib/issues/583 while still keeping
      https://bugzilla.gnome.org/show_bug.cgi?id=661767 fixes.
      aa20167d
    • Sebastian Dröge's avatar
      GMainContext - Fix GSource iterator if iteration can modify the list · b06c48de
      Sebastian Dröge authored
      We first have to ref the next source and then unref the previous one.
      This might be the last reference to the previous source, and freeing the
      previous source might unref and free the next one which would then leave
      use with a dangling pointer here.
      
      Fixes GNOME/glib#2031
      b06c48de
  5. 09 Feb, 2020 2 commits
  6. 08 Feb, 2020 3 commits
  7. 07 Feb, 2020 7 commits
  8. 06 Feb, 2020 1 commit
  9. 05 Feb, 2020 3 commits
  10. 04 Feb, 2020 8 commits