Upstream version 7.35.139.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / filesystem / DirectoryReader.cpp
index 9d4de7f..8265835 100644 (file)
@@ -113,6 +113,7 @@ void DirectoryReader::readEntries(PassOwnPtr<EntriesCallback> entriesCallback, P
 void DirectoryReader::addEntries(const EntryHeapVector& entries)
 {
     m_entries.appendVector(entries);
+    m_errorCallback = nullptr;
     if (m_entriesCallback) {
         OwnPtr<EntriesCallback> entriesCallback = m_entriesCallback.release();
         EntryHeapVector entries;
@@ -124,8 +125,11 @@ void DirectoryReader::addEntries(const EntryHeapVector& entries)
 void DirectoryReader::onError(FileError* error)
 {
     m_error = error;
-    if (m_errorCallback)
-        m_errorCallback->handleEvent(error);
+    m_entriesCallback = nullptr;
+    if (m_errorCallback) {
+        OwnPtr<ErrorCallback> errorCallback = m_errorCallback.release();
+        errorCallback->handleEvent(error);
+    }
 }
 
 void DirectoryReader::trace(Visitor* visitor)