[PATCH v2 1/4] mshtml: Implement HTMLStorage_getItem().
Jacek Caban
jacek at codeweavers.com
Wed May 25 12:53:08 CDT 2022
Hi Hans,
On 5/25/22 13:43, Hans Leidekker wrote:
> +struct storage {
> + IXMLDOMDocument *doc;
> + HANDLE mutex;
> +};
> +
> +static void close_storage(struct storage *storage)
> +{
> + if(storage->doc)
> + IXMLDOMDocument_Release(storage->doc);
> + ReleaseMutex(storage->mutex);
> + CloseHandle(storage->mutex);
> + heap_free(storage);
> +}
> +
> +static HRESULT open_storage(const WCHAR *filename, struct storage **ret)
> +{
> + struct storage *storage;
> + HRESULT hres = E_OUTOFMEMORY;
> + VARIANT var;
> + VARIANT_BOOL success;
> + WCHAR *mutexname, *ptr, *path = NULL;
> +
> + storage = heap_alloc_zero(sizeof(*storage));
> + if(!storage)
> + return E_OUTOFMEMORY;
> +
> + mutexname = build_mutexname(filename);
> + if(!mutexname)
> + goto done;
> +
> + storage->mutex = CreateMutexW(NULL, FALSE, mutexname);
> + heap_free(mutexname);
> + if(!storage->mutex) {
> + hres = HRESULT_FROM_WIN32(GetLastError());
> + goto done;
> + }
This seems less than optimal. Maybe we could store mutex handle in
HTMLStorage itself instead of reopening it on each call? open_storage()
could then just return IXMLDOMDocument, avoiding storage struct allocation.
Thanks,
Jacek
More information about the wine-devel
mailing list