mirror of
git://github.com/kovidgoyal/calibre.git
synced 2026-05-08 22:43:31 +02:00
Fix memory leak when switching libraries
This commit is contained in:
parent
396da1f7bc
commit
f227086913
3 changed files with 10 additions and 0 deletions
|
|
@ -384,7 +384,14 @@ def switch_requested(self, location):
|
|||
return
|
||||
|
||||
prefs['library_path'] = loc
|
||||
#from calibre.utils.mem import memory
|
||||
#import weakref, gc
|
||||
#ref = weakref.ref(self.gui.library_view.model().db)
|
||||
#before = memory()/1024**2
|
||||
self.gui.library_moved(loc)
|
||||
#print gc.get_referrers(ref)[0]
|
||||
#for i in xrange(3): gc.collect()
|
||||
#print 'leaked:', memory()/1024**2 - before
|
||||
|
||||
def qs_requested(self, idx, *args):
|
||||
self.switch_requested(self.qs_locations[idx])
|
||||
|
|
|
|||
|
|
@ -440,6 +440,7 @@ def library_moved(self, newloc, copy_structure=False):
|
|||
except:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
olddb.break_cycles()
|
||||
if self.device_connected:
|
||||
self.set_books_in_library(self.booklists(), reset=True)
|
||||
self.refresh_ondevice()
|
||||
|
|
|
|||
|
|
@ -361,6 +361,8 @@ def migrate_preference(key, default):
|
|||
self.refresh()
|
||||
self.last_update_check = self.last_modified()
|
||||
|
||||
def break_cycles(self):
|
||||
self.data = self.field_metadata = self.prefs = self.listeners = None
|
||||
|
||||
def initialize_database(self):
|
||||
metadata_sqlite = open(P('metadata_sqlite.sql'), 'rb').read()
|
||||
|
|
|
|||
Loading…
Reference in a new issue