Nikolay Sivov : msxml3: Add a helper to check for error handler being set.

Alexandre Julliard julliard at winehq.org
Fri Oct 29 10:58:19 CDT 2010


Module: wine
Branch: master
Commit: 8f9804ed0bef2810940a49c0ebaf81f577112f80
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=8f9804ed0bef2810940a49c0ebaf81f577112f80

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Oct 29 01:04:44 2010 +0400

msxml3: Add a helper to check for error handler being set.

---

 dlls/msxml3/saxreader.c |   12 ++++++++----
 1 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c
index 3a2e534..1fdf48d 100644
--- a/dlls/msxml3/saxreader.c
+++ b/dlls/msxml3/saxreader.c
@@ -132,6 +132,12 @@ static inline BOOL has_content_handler(const saxlocator *locator)
            (!locator->vbInterface && locator->saxreader->contentHandler);
 }
 
+static inline BOOL has_error_handler(const saxlocator *locator)
+{
+    return (locator->vbInterface && locator->saxreader->vberrorHandler) ||
+          (!locator->vbInterface && locator->saxreader->errorHandler);
+}
+
 static HRESULT namespacePush(saxlocator *locator, int ns)
 {
     if(locator->nsStackLast>=locator->nsStackSize)
@@ -202,8 +208,7 @@ static void format_error_message_from_id(saxlocator *This, HRESULT hr)
     xmlStopParser(This->pParserCtxt);
     This->ret = hr;
 
-    if((This->vbInterface && This->saxreader->vberrorHandler)
-            || (!This->vbInterface && This->saxreader->errorHandler))
+    if(has_error_handler(This))
     {
         WCHAR msg[1024];
         if(!FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM,
@@ -1299,8 +1304,7 @@ static void libxmlFatalError(void *ctx, const char *msg, ...)
     DWORD len;
     va_list args;
 
-    if((This->vbInterface && !This->saxreader->vberrorHandler)
-            || (!This->vbInterface && !This->saxreader->errorHandler))
+    if(!has_error_handler(This))
     {
         xmlStopParser(This->pParserCtxt);
         This->ret = E_FAIL;




More information about the wine-cvs mailing list