From 15d6a1edc8baa8c5547e7d148db98def4b4ae337 Mon Sep 17 00:00:00 2001 From: scottdowne Date: Wed, 15 Jan 2014 14:47:38 -0500 Subject: [PATCH 1/2] [#960183] Ensure we remove ready callbacks when they are called. --- wrappers/null/popcorn.HTMLNullVideoElement.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/wrappers/null/popcorn.HTMLNullVideoElement.js b/wrappers/null/popcorn.HTMLNullVideoElement.js index 5a3517c60..255ba65b5 100644 --- a/wrappers/null/popcorn.HTMLNullVideoElement.js +++ b/wrappers/null/popcorn.HTMLNullVideoElement.js @@ -110,7 +110,7 @@ self._util.type = "NullVideo"; function addPlayerReadyCallback( callback ) { - playerReadyCallbacks.unshift( callback ); + playerReadyCallbacks.push( callback ); } function onPlayerReady( ) { @@ -128,10 +128,9 @@ impl.readyState = self.HAVE_ENOUGH_DATA; self.dispatchEvent( "canplaythrough" ); - var i = playerReadyCallbacks.length; - while( i-- ) { - playerReadyCallbacks[ i ](); - delete playerReadyCallbacks[ i ]; + while( playerReadyCallbacks.length ) { + playerReadyCallbacks[ 0 ](); + playerReadyCallbacks.shift(); } // Auto-start if necessary From 8019aa842f43cc54e3d20933a782609c8e120351 Mon Sep 17 00:00:00 2001 From: scottdowne Date: Wed, 15 Jan 2014 22:08:46 -0500 Subject: [PATCH 2/2] r --- wrappers/null/popcorn.HTMLNullVideoElement.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/wrappers/null/popcorn.HTMLNullVideoElement.js b/wrappers/null/popcorn.HTMLNullVideoElement.js index 255ba65b5..bd25ad1cc 100644 --- a/wrappers/null/popcorn.HTMLNullVideoElement.js +++ b/wrappers/null/popcorn.HTMLNullVideoElement.js @@ -113,7 +113,8 @@ playerReadyCallbacks.push( callback ); } - function onPlayerReady( ) { + function onPlayerReady() { + var callback; playerReady = true; impl.networkState = self.NETWORK_IDLE; @@ -129,8 +130,8 @@ self.dispatchEvent( "canplaythrough" ); while( playerReadyCallbacks.length ) { - playerReadyCallbacks[ 0 ](); - playerReadyCallbacks.shift(); + callback = playerReadyCallbacks.shift(); + callback(); } // Auto-start if necessary