Skip to content
  1. Oct 11, 2016
  2. May 23, 2015
  3. Oct 12, 2012
  4. Aug 18, 2012
  5. Aug 17, 2012
  6. Jun 10, 2012
  7. Jun 09, 2012
  8. Jun 08, 2012
  9. May 21, 2012
  10. May 19, 2012
  11. May 14, 2012
  12. May 08, 2012
  13. May 07, 2012
  14. May 04, 2012
  15. Apr 30, 2012
  16. Apr 29, 2012
  17. Apr 27, 2012
  18. Apr 24, 2012
  19. Apr 23, 2012
  20. Apr 18, 2012
  21. Apr 16, 2012
  22. Apr 13, 2012
  23. Apr 06, 2012
  24. Apr 05, 2012
    • Allison Karlitskaya's avatar
      NautilusFile: keep free space information directly · ba04ec0e
      Allison Karlitskaya authored
      There were previously some tricks in nautilus to this effect:
      
       - when you call nautilus_file_get_volume_free_space() on a
         NautilusFile, the return result is NULL at first and later you get a
         "changed" signal on the file after the value is filled in
      
       - the value is being stored inside the NautilusDirectory equivalent for
         the file that is created when the call is first performed and kept
         around until after the change signal fires (so that the person
         receiving the change signal can still get the data).  This is done to
         save space by not expanding NautilusFile.
      
         The NautilusDirectory is then dropped after the change signal is done
         firing.
      
       - the nautilus properties window has a 200ms timeout after changes to
         files being reported before it re-queries the properties
      
      The end result is that the NautilusDirectory (which holds the
      information about the free space) is already freed by the time the
      properties window tries to update the free space display.  This results
      in the directory being recreated and the process starting over again.
      The end result is that we never get the free space shown in the dialog
      and instead we have an infinite loop of CPU usage (fortunately repeating
      only every 200ms, so you get ~5% CPU usage instead of 100%).
      
      We can solve the problem by just storing the free space information
      directly in the NautilusFile details structure and dropping the dance
      with NautilusDirectory; nothing in NautilusDirectory is actually using
      that information anyway.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=673550
      ba04ec0e