diff --git a/QuickLook.Native/QuickLook.Native32/DOpus.cpp b/QuickLook.Native/QuickLook.Native32/DOpus.cpp index eb1355e..e004f11 100644 --- a/QuickLook.Native/QuickLook.Native32/DOpus.cpp +++ b/QuickLook.Native/QuickLook.Native32/DOpus.cpp @@ -30,7 +30,7 @@ HWND hMsgWnd; HANDLE hGetResultEvent; -PCHAR pXmlBuffer; +PCHAR pXmlBuffer = nullptr; void DOpus::GetSelected(PWCHAR buffer) { @@ -72,9 +72,12 @@ void DOpus::GetSelected(PWCHAR buffer) WaitForSingleObject(hGetResultEvent, 2000); - ParseXmlBuffer(buffer); - - delete[] pXmlBuffer; + if (pXmlBuffer != nullptr) + { + ParseXmlBuffer(buffer); + delete[] pXmlBuffer; + pXmlBuffer = nullptr; + } } void DOpus::ParseXmlBuffer(PWCHAR buffer) @@ -88,6 +91,9 @@ void DOpus::ParseXmlBuffer(PWCHAR buffer) * ... */ + if (pXmlBuffer == nullptr) + return; + using namespace rapidxml; xml_document<> doc;