Fix PageView cache re-insertions. #4936

Merged
merged 1 commit into from Jun 13, 2014

Projects

None yet

2 participants

@nnethercote

If a PageView is re-inserted into the cache, there's a splice() call done which I'm pretty sure is supposed to just remove the existing copy. But in Firefox a.splice(n) has a special behaviour -- it causes every element after the nth to be removed. (See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice for details. I don't know what it does in other browsers.) This causes pages to be removed from the cache without having destroy() called on them.

This patch changes it to a.splice(n, 1), which always removes just the single element.

(BTW, there are two splice(i) calls in src/shared/util.js that may also be buggy.)

@yurydelendik

Trivial. Thanks

@yurydelendik yurydelendik merged commit 69d7227 into mozilla:master Jun 13, 2014

1 check passed

Details continuous-integration/travis-ci The Travis CI build passed
@nnethercote nnethercote deleted the nnethercote:fix-cache-splice branch Jun 13, 2014
@nnethercote

Yury, do you think the splice(i) calls in src/shared/util.js are buggy?

@yurydelendik

do you think the splice(i) calls in src/shared/util.js are buggy?

Maybe, but there are not that important -- there are related to the unhandled rejections in the Promise polyfill.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment