diff options
Diffstat (limited to 'lib/PendingRequests.jsm')
-rw-r--r-- | lib/PendingRequests.jsm | 100 |
1 files changed, 50 insertions, 50 deletions
diff --git a/lib/PendingRequests.jsm b/lib/PendingRequests.jsm index a3f72e5..fdb62e2 100644 --- a/lib/PendingRequests.jsm +++ b/lib/PendingRequests.jsm @@ -2,7 +2,7 @@ ηMatrix - a browser extension to black/white list requests. Copyright (C) 2014-2019 The uMatrix/uBlock Origin authors - Copyright (C) 2019-2020 Alessio Vanni + Copyright (C) 2019-2020-2021 Alessio Vanni This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see {http://www.gnu.org/licenses/}. - Home: https://libregit.spks.xyz/heckyel/ematrix + Home: https://gitlab.com/vannilla/ematrix uMatrix Home: https://github.com/gorhill/uMatrix */ @@ -42,55 +42,55 @@ for (let i=0; i<bufferLength; ++i) { var PendingRequestBuffer = { createRequest: function (url) { - // URL to ring buffer index map: - // { k = URL, s = ring buffer indices } - // - // s is a string which character codes map to ring buffer - // indices -- for when the same URL is received multiple times - // by shouldLoadListener() before the existing one is serviced - // by the network request observer. I believe the use of a - // string in lieu of an array reduces memory churning. - let bucket; - let i = writePointer; - writePointer = (i + 1) % bufferLength; - - let req = ringBuffer[i]; - let str = String.fromCharCode(i); - - if (req._key !== '') { - bucket = urlToIndex.get(req._key); - if (bucket.lenght === 1) { - urlToIndex.delete(req._key); - } else { - let pos = bucket.indexOf(str); - urlToIndex.set(req._key, - bucket.slice(0, pos)+bucket.slice(pos+1)); - } - } - - bucket = urlToIndex.get(url); - urlToIndex.set(url, - (bucket === undefined) ? str : bucket + str); - req._key = url; - - return req; + // URL to ring buffer index map: + // { k = URL, s = ring buffer indices } + // + // s is a string which character codes map to ring buffer + // indices -- for when the same URL is received multiple times + // by shouldLoadListener() before the existing one is serviced + // by the network request observer. I believe the use of a + // string in lieu of an array reduces memory churning. + let bucket; + let i = writePointer; + writePointer = (i + 1) % bufferLength; + + let req = ringBuffer[i]; + let str = String.fromCharCode(i); + + if (req._key !== '') { + bucket = urlToIndex.get(req._key); + if (bucket.lenght === 1) { + urlToIndex.delete(req._key); + } else { + let pos = bucket.indexOf(str); + urlToIndex.set(req._key, + bucket.slice(0, pos)+bucket.slice(pos+1)); + } + } + + bucket = urlToIndex.get(url); + urlToIndex.set(url, + (bucket === undefined) ? str : bucket + str); + req._key = url; + + return req; }, lookupRequest: function (url) { - let bucket = urlToIndex.get(url); - if (bucket === undefined) { - return null; - } - - let i = bucket.charCodeAt(0); - if (bucket.length === 1) { - urlToIndex.delete(url); - } else { - urlToIndex.set(url, bucket.slice(1)); - } - - let req = ringBuffer[i]; - req._key = ''; - - return req; + let bucket = urlToIndex.get(url); + if (bucket === undefined) { + return null; + } + + let i = bucket.charCodeAt(0); + if (bucket.length === 1) { + urlToIndex.delete(url); + } else { + urlToIndex.set(url, bucket.slice(1)); + } + + let req = ringBuffer[i]; + req._key = ''; + + return req; }, }; |