From fb957f5c6ed63297c22e4938c8b8c4d0470048cc Mon Sep 17 00:00:00 2001
From: biggert <joe@cicayda.com>
Date: Wed, 25 Sep 2013 16:25:41 -0500
Subject: [PATCH] Prevent undefined error on null object when calling .destroy
 on a document initialized with LocalPdfManager.

Per @brendandahl's recommendation, moved the terminate function out of worker
and into the PdfManager
---
 src/core/pdf_manager.js | 14 ++++++++++++++
 src/core/worker.js      |  2 +-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/core/pdf_manager.js b/src/core/pdf_manager.js
index 20dfff1d1..a6641ae4c 100644
--- a/src/core/pdf_manager.js
+++ b/src/core/pdf_manager.js
@@ -63,6 +63,10 @@ var BasePdfManager = (function BasePdfManagerClosure() {
       if (this.passwordChangedPromise) {
         this.passwordChangedPromise.resolve();
       }
+    },
+
+    terminate: function BasePdfManager_terminate() {
+      return new NotImplementedException();
     }
   };
 
@@ -115,6 +119,11 @@ var LocalPdfManager = (function LocalPdfManagerClosure() {
     return this.loadedStream;
   };
 
+  LocalPdfManager.prototype.terminate =
+      function LocalPdfManager_terminate() {
+    return;
+  };
+
   return LocalPdfManager;
 })();
 
@@ -192,6 +201,11 @@ var NetworkPdfManager = (function NetworkPdfManagerClosure() {
     return this.streamManager.onLoadedStream();
   };
 
+  NetworkPdfManager.prototype.terminate =
+      function NetworkPdfManager_terminate() {
+    this.streamManager.networkManager.abortAllRequests();
+  };
+
   return NetworkPdfManager;
 })();
 
diff --git a/src/core/worker.js b/src/core/worker.js
index 8c18f347b..d43ef327d 100644
--- a/src/core/worker.js
+++ b/src/core/worker.js
@@ -368,7 +368,7 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
     });
 
     handler.on('Terminate', function wphTerminate(data, promise) {
-      pdfManager.streamManager.networkManager.abortAllRequests();
+      pdfManager.terminate();
       promise.resolve();
     });
   }