1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-01-09 07:44:14 +01:00

Flush literals from cache on :rehash.

This commit is contained in:
Kris Maglione
2014-02-17 14:33:00 -08:00
parent 48177b7405
commit 512b01d574
3 changed files with 19 additions and 4 deletions

View File

@@ -972,8 +972,16 @@ Class.prototype = {
util.rehashing && !isinstance(Cu.getGlobalForObject(callback), ["BackstagePass"]))
return;
this.timeouts.splice(this.timeouts.indexOf(timer), 1);
util.trapErrors(callback, this);
try {
callback.call(this);
}
catch (e) {
util.dump("Error invoking timer callback registered at " +
[frame.filename, frame.lineNumber, ""].join(":"));
Cu.reportError(e);
}
};
let frame = Cs.caller;
let timer = services.Timer(timeout_notify, timeout || 0, services.Timer.TYPE_ONE_SHOT);
this.timeouts.push(timer);
return timer;

View File

@@ -138,9 +138,15 @@ var Cache = Module("Cache", XPCOM(Ci.nsIRequestObserver), {
}
}),
flush: function flush() {
this.storage.clear();
this.flushDiskCache();
flush: function flush(filter) {
if (filter) {
this.storage.keys().filter(filter)
.forEach(bind("remove", this.storage));
}
else {
this.storage.clear();
this.flushDiskCache();
}
},
flushDiskCache: function flushDiskCache() {

View File

@@ -1366,6 +1366,7 @@ var Util = Module("Util", XPCOM([Ci.nsIObserver, Ci.nsISupportsWeakReference]),
storage.storeForSession("commandlineArgs", args);
this.timeout(function () {
this.flushCache();
cache.flush(bind("test", /^literal:/));
this.rehashing = true;
let addon = config.addon;
addon.userDisabled = true;