"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "dlls/msxml3/domdoc.c" between
wine-5.12.tar.xz and wine-5.13.tar.xz

About: Wine is an Open Source implementation of the MS Windows API on top of X, OpenGL, and Unix. Think of Wine as a compatibility layer for running Windows programs. Development release.

domdoc.c  (wine-5.12.tar.xz):domdoc.c  (wine-5.13.tar.xz)
skipping to change at line 138 skipping to change at line 138
IConnectionPointContainer IConnectionPointContainer_iface; IConnectionPointContainer IConnectionPointContainer_iface;
LONG ref; LONG ref;
VARIANT_BOOL async; VARIANT_BOOL async;
VARIANT_BOOL validating; VARIANT_BOOL validating;
VARIANT_BOOL resolving; VARIANT_BOOL resolving;
domdoc_properties* properties; domdoc_properties* properties;
HRESULT error; HRESULT error;
/* IObjectWithSite */ /* IObjectWithSite */
IUnknown *site; IUnknown *site;
IUri *base_uri;
/* IObjectSafety */ /* IObjectSafety */
DWORD safeopt; DWORD safeopt;
/* connection list */ /* connection list */
ConnectionPoint *cp_list; ConnectionPoint *cp_list;
ConnectionPoint cp_domdocevents; ConnectionPoint cp_domdocevents;
ConnectionPoint cp_propnotif; ConnectionPoint cp_propnotif;
ConnectionPoint cp_dispatch; ConnectionPoint cp_dispatch;
skipping to change at line 827 skipping to change at line 828
static HRESULT WINAPI PersistStreamInit_Load(IPersistStreamInit *iface, IStream *stream) static HRESULT WINAPI PersistStreamInit_Load(IPersistStreamInit *iface, IStream *stream)
{ {
domdoc *This = impl_from_IPersistStreamInit(iface); domdoc *This = impl_from_IPersistStreamInit(iface);
TRACE("(%p)->(%p)\n", This, stream); TRACE("(%p)->(%p)\n", This, stream);
if (!stream) if (!stream)
return E_INVALIDARG; return E_INVALIDARG;
return domdoc_load_from_stream(This, (ISequentialStream*)stream); return This->error = domdoc_load_from_stream(This, (ISequentialStream*)strea m);
} }
static HRESULT WINAPI PersistStreamInit_Save( static HRESULT WINAPI PersistStreamInit_Save(
IPersistStreamInit *iface, IStream *stream, BOOL clr_dirty) IPersistStreamInit *iface, IStream *stream, BOOL clr_dirty)
{ {
domdoc *This = impl_from_IPersistStreamInit(iface); domdoc *This = impl_from_IPersistStreamInit(iface);
BSTR xmlString; BSTR xmlString;
HRESULT hr; HRESULT hr;
TRACE("(%p)->(%p %d)\n", This, stream, clr_dirty); TRACE("(%p)->(%p %d)\n", This, stream, clr_dirty);
skipping to change at line 966 skipping to change at line 967
LONG ref = InterlockedDecrement( &This->ref ); LONG ref = InterlockedDecrement( &This->ref );
TRACE("(%p)->(%d)\n", This, ref ); TRACE("(%p)->(%d)\n", This, ref );
if ( ref == 0 ) if ( ref == 0 )
{ {
int eid; int eid;
if (This->site) if (This->site)
IUnknown_Release( This->site ); IUnknown_Release( This->site );
if (This->base_uri)
IUri_Release( This->base_uri );
destroy_xmlnode(&This->node); destroy_xmlnode(&This->node);
for (eid = 0; eid < EVENTID_LAST; eid++) for (eid = 0; eid < EVENTID_LAST; eid++)
if (This->events[eid]) IDispatch_Release(This->events[eid]); if (This->events[eid]) IDispatch_Release(This->events[eid]);
release_namespaces(This); release_namespaces(This);
heap_free(This); heap_free(This);
} }
return ref; return ref;
skipping to change at line 2238 skipping to change at line 2241
return hr; return hr;
} }
} }
hr = IUnknown_QueryInterface(V_UNKNOWN(&source), &IID_IStream, (void**)& stream); hr = IUnknown_QueryInterface(V_UNKNOWN(&source), &IID_IStream, (void**)& stream);
if (FAILED(hr)) if (FAILED(hr))
hr = IUnknown_QueryInterface(V_UNKNOWN(&source), &IID_ISequentialStr eam, (void**)&stream); hr = IUnknown_QueryInterface(V_UNKNOWN(&source), &IID_ISequentialStr eam, (void**)&stream);
if (hr == S_OK) if (hr == S_OK)
{ {
hr = domdoc_load_from_stream(This, stream); hr = This->error = domdoc_load_from_stream(This, stream);
if (hr == S_OK) if (hr == S_OK)
*isSuccessful = VARIANT_TRUE; *isSuccessful = VARIANT_TRUE;
ISequentialStream_Release(stream); ISequentialStream_Release(stream);
return hr; return hr;
} }
FIXME("unsupported IUnknown type (0x%08x) (%p)\n", hr, V_UNKNOWN(&source )->lpVtbl); FIXME("unsupported IUnknown type (0x%08x) (%p)\n", hr, V_UNKNOWN(&source )->lpVtbl);
break; break;
} }
default: default:
skipping to change at line 2263 skipping to change at line 2266
{ {
IUri *uri = NULL; IUri *uri = NULL;
IMoniker *mon; IMoniker *mon;
if (This->properties->uri) if (This->properties->uri)
{ {
IUri_Release(This->properties->uri); IUri_Release(This->properties->uri);
This->properties->uri = NULL; This->properties->uri = NULL;
} }
hr = create_uri(filename, &uri); hr = create_uri(This->base_uri, filename, &uri);
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
hr = CreateURLMonikerEx2(NULL, uri, &mon, 0); hr = CreateURLMonikerEx2(NULL, uri, &mon, 0);
if ( SUCCEEDED(hr) ) if ( SUCCEEDED(hr) )
{ {
hr = domdoc_load_moniker( This, mon ); hr = domdoc_load_moniker( This, mon );
IMoniker_Release(mon); IMoniker_Release(mon);
} }
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
skipping to change at line 3500 skipping to change at line 3503
TRACE("(%p)->(%p)\n", iface, punk); TRACE("(%p)->(%p)\n", iface, punk);
if(!punk) if(!punk)
{ {
if(This->site) if(This->site)
{ {
IUnknown_Release( This->site ); IUnknown_Release( This->site );
This->site = NULL; This->site = NULL;
} }
if(This->base_uri)
{
IUri_Release(This->base_uri);
This->base_uri = NULL;
}
return S_OK; return S_OK;
} }
IUnknown_AddRef( punk ); IUnknown_AddRef( punk );
if(This->site) if(This->site)
IUnknown_Release( This->site ); IUnknown_Release( This->site );
This->site = punk; This->site = punk;
This->base_uri = get_base_uri(This->site);
return S_OK; return S_OK;
} }
static const IObjectWithSiteVtbl domdocObjectSite = static const IObjectWithSiteVtbl domdocObjectSite =
{ {
domdoc_ObjectWithSite_QueryInterface, domdoc_ObjectWithSite_QueryInterface,
domdoc_ObjectWithSite_AddRef, domdoc_ObjectWithSite_AddRef,
domdoc_ObjectWithSite_Release, domdoc_ObjectWithSite_Release,
domdoc_ObjectWithSite_SetSite, domdoc_ObjectWithSite_SetSite,
skipping to change at line 3613 skipping to change at line 3623
doc->IObjectWithSite_iface.lpVtbl = &domdocObjectSite; doc->IObjectWithSite_iface.lpVtbl = &domdocObjectSite;
doc->IObjectSafety_iface.lpVtbl = &domdocObjectSafetyVtbl; doc->IObjectSafety_iface.lpVtbl = &domdocObjectSafetyVtbl;
doc->IConnectionPointContainer_iface.lpVtbl = &ConnectionPointContainerVtbl; doc->IConnectionPointContainer_iface.lpVtbl = &ConnectionPointContainerVtbl;
doc->ref = 1; doc->ref = 1;
doc->async = VARIANT_TRUE; doc->async = VARIANT_TRUE;
doc->validating = 0; doc->validating = 0;
doc->resolving = 0; doc->resolving = 0;
doc->properties = properties_from_xmlDocPtr(xmldoc); doc->properties = properties_from_xmlDocPtr(xmldoc);
doc->error = S_OK; doc->error = S_OK;
doc->site = NULL; doc->site = NULL;
doc->base_uri = NULL;
doc->safeopt = 0; doc->safeopt = 0;
doc->cp_list = NULL; doc->cp_list = NULL;
doc->namespaces = NULL; doc->namespaces = NULL;
memset(doc->events, 0, sizeof(doc->events)); memset(doc->events, 0, sizeof(doc->events));
/* events connection points */ /* events connection points */
ConnectionPoint_Init(&doc->cp_dispatch, doc, &IID_IDispatch); ConnectionPoint_Init(&doc->cp_dispatch, doc, &IID_IDispatch);
ConnectionPoint_Init(&doc->cp_propnotif, doc, &IID_IPropertyNotifySink); ConnectionPoint_Init(&doc->cp_propnotif, doc, &IID_IPropertyNotifySink);
ConnectionPoint_Init(&doc->cp_domdocevents, doc, &DIID_XMLDOMDocumentEvents) ; ConnectionPoint_Init(&doc->cp_domdocevents, doc, &DIID_XMLDOMDocumentEvents) ;
 End of changes. 8 change blocks. 
3 lines changed or deleted 14 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)