[MSXML3] Sync with Wine Staging 1.7.47. CORE-9924
authorAmine Khaldi <amine.khaldi@reactos.org>
Sun, 19 Jul 2015 23:07:13 +0000 (23:07 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sun, 19 Jul 2015 23:07:13 +0000 (23:07 +0000)
svn path=/trunk/; revision=68465

reactos/dll/win32/msxml3/domdoc.c
reactos/dll/win32/msxml3/node.c
reactos/dll/win32/msxml3/saxreader.c
reactos/dll/win32/msxml3/xslpattern.l
reactos/dll/win32/msxml3/xslpattern.yy.c
reactos/media/doc/README.WINE

index 76aa5fb..6c32bb5 100644 (file)
@@ -2120,7 +2120,13 @@ static HRESULT WINAPI domdoc_load(
             case 1:
                 /* Only takes UTF-8 strings.
                  * NOT NULL-terminated. */
-                SafeArrayAccessData(psa, (void**)&str);
+                hr = SafeArrayAccessData(psa, (void**)&str);
+                if (FAILED(hr))
+                {
+                    This->error = hr;
+                    WARN("failed to access array data, 0x%08x\n", hr);
+                    break;
+                }
                 SafeArrayGetUBound(psa, 1, &len);
 
                 if ((xmldoc = doparse(This, str, ++len, XML_CHAR_ENCODING_UTF8)))
index a52dcdf..e4a8ad8 100644 (file)
@@ -1598,7 +1598,29 @@ static HRESULT WINAPI unknode_get_nodeType(
 
     FIXME("(%p)->(%p)\n", This, domNodeType);
 
-    *domNodeType = This->node.node->type;
+    switch (This->node.node->type)
+    {
+    case XML_ELEMENT_NODE:
+    case XML_ATTRIBUTE_NODE:
+    case XML_TEXT_NODE:
+    case XML_CDATA_SECTION_NODE:
+    case XML_ENTITY_REF_NODE:
+    case XML_ENTITY_NODE:
+    case XML_PI_NODE:
+    case XML_COMMENT_NODE:
+    case XML_DOCUMENT_NODE:
+    case XML_DOCUMENT_TYPE_NODE:
+    case XML_DOCUMENT_FRAG_NODE:
+    case XML_NOTATION_NODE:
+        /* we only care about this set of types, libxml2 type values are
+           exactly what we need */
+        *domNodeType = (DOMNodeType)This->node.node->type;
+        break;
+    default:
+        *domNodeType = NODE_INVALID;
+        break;
+    }
+
     return S_OK;
 }
 
@@ -1997,9 +2019,11 @@ IXMLDOMNode *create_node( xmlNodePtr node )
         pUnk = create_doc_fragment( node );
         break;
     case XML_DTD_NODE:
+    case XML_DOCUMENT_TYPE_NODE:
         pUnk = create_doc_type( node );
         break;
-    default: {
+    case XML_ENTITY_NODE:
+    case XML_NOTATION_NODE: {
         unknode *new_node;
 
         FIXME("only creating basic node for type %d\n", node->type);
@@ -2012,7 +2036,11 @@ IXMLDOMNode *create_node( xmlNodePtr node )
         new_node->ref = 1;
         init_xmlnode(&new_node->node, node, &new_node->IXMLDOMNode_iface, NULL);
         pUnk = (IUnknown*)&new_node->IXMLDOMNode_iface;
+        break;
     }
+    default:
+        ERR("Called for unsupported node type %d\n", node->type);
+        return NULL;
     }
 
     hr = IUnknown_QueryInterface(pUnk, &IID_IXMLDOMNode, (LPVOID*)&ret);
index dc02f19..ddaba1c 100644 (file)
@@ -646,7 +646,7 @@ static void format_error_message_from_id(saxlocator *This, HRESULT hr)
     {
         WCHAR msg[1024];
         if(!FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM,
-                    NULL, hr, 0, msg, sizeof(msg), NULL))
+                    NULL, hr, 0, msg, sizeof(msg)/sizeof(msg[0]), NULL))
         {
             FIXME("MSXML errors not yet supported.\n");
             msg[0] = '\0';
index bda3836..58df309 100644 (file)
@@ -152,6 +152,7 @@ ANY                 (.)
 
 %%
 
+xmlChar* XSLPattern_to_XPath(xmlXPathContextPtr, xmlChar const*) DECLSPEC_HIDDEN;
 xmlChar* XSLPattern_to_XPath(xmlXPathContextPtr ctxt, xmlChar const* xslpat_str)
 {
     parser_param p;
index 01b7488..d56541e 100644 (file)
@@ -2211,6 +2211,7 @@ void xslpattern_free (void * ptr , yyscan_t yyscanner)
 
 
 
+xmlChar* XSLPattern_to_XPath(xmlXPathContextPtr, xmlChar const*) DECLSPEC_HIDDEN;
 xmlChar* XSLPattern_to_XPath(xmlXPathContextPtr ctxt, xmlChar const* xslpat_str)
 {
     parser_param p;
index 5e9aa45..a49fc50 100644 (file)
@@ -134,7 +134,7 @@ reactos/dll/win32/msvfw32             # Synced to WineStaging-1.7.37
 reactos/dll/win32/msvidc32            # Synced to WineStaging-1.7.37
 reactos/dll/win32/msxml               # Synced to WineStaging-1.7.37
 reactos/dll/win32/msxml2              # Synced to WineStaging-1.7.37
-reactos/dll/win32/msxml3              # Synced to WineStaging-1.7.37
+reactos/dll/win32/msxml3              # Synced to WineStaging-1.7.47
 reactos/dll/win32/msxml4              # Synced to WineStaging-1.7.37
 reactos/dll/win32/msxml6              # Synced to WineStaging-1.7.37
 reactos/dll/win32/nddeapi             # Synced to WineStaging-1.7.37