1
0
mirror of https://github.com/gryf/pentadactyl-pm.git synced 2026-02-21 23:05:46 +01:00

Don't Be Evil.

--HG--
rename : pentadactyl/skin/icon.png => pentadactyl/icon16.png
This commit is contained in:
Kris Maglione
2011-09-11 15:06:46 -04:00
parent 68d8bf74df
commit 345cce5a42
8 changed files with 41 additions and 28 deletions

View File

@@ -164,10 +164,6 @@ var Storage = Module("Storage", {
this[key].timer.flush();
delete this[key];
}
for (let ary in values(this.observers))
for (let obj in values(ary))
if (obj.ref && obj.ref.get())
delete obj.ref.get().dactylStorageRefs;
this.keys = {};
this.observers = {};
@@ -201,9 +197,8 @@ var Storage = Module("Storage", {
addObserver: function addObserver(key, callback, ref) {
if (ref) {
if (!ref.dactylStorageRefs)
ref.dactylStorageRefs = [];
ref.dactylStorageRefs.push(callback);
let refs = overlay.getData(ref, "storage-refs");
refs.push(callback);
var callbackRef = Cu.getWeakReference(callback);
}
else {
@@ -227,7 +222,9 @@ var Storage = Module("Storage", {
removeDeadObservers: function () {
for (let [key, ary] in Iterator(this.observers)) {
this.observers[key] = ary = ary.filter(function (o) o.callback.get() && (!o.ref || o.ref.get() && o.ref.get().dactylStorageRefs));
this.observers[key] = ary = ary.filter(function (o) o.callback.get()
&& (!o.ref || o.ref.get()
&& overlay.getData(o.ref.get(), "storage-refs", null)));
if (!ary.length)
delete this.observers[key];
}
@@ -280,7 +277,7 @@ var Storage = Module("Storage", {
},
cleanup: function (dactyl, modules, window) {
delete window.dactylStorageRefs;
overlay.setData(window, "storage-refs", null);
this.removeDeadObservers();
}
});