Jacek Caban : urlmon: Avoid LPWSTR to LPCWSTR cast.
Alexandre Julliard
julliard at winehq.org
Thu May 26 10:56:28 CDT 2011
Module: wine
Branch: master
Commit: 2d1bc5b861b5c195704d204b068c27b9d40e1bc1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=2d1bc5b861b5c195704d204b068c27b9d40e1bc1
Author: Jacek Caban <jacek at codeweavers.com>
Date: Thu May 26 15:08:28 2011 +0200
urlmon: Avoid LPWSTR to LPCWSTR cast.
---
dlls/urlmon/http.c | 37 ++++++++++++++++++-------------------
1 files changed, 18 insertions(+), 19 deletions(-)
diff --git a/dlls/urlmon/http.c b/dlls/urlmon/http.c
index 846c790..5a606ca 100644
--- a/dlls/urlmon/http.c
+++ b/dlls/urlmon/http.c
@@ -36,7 +36,7 @@ typedef struct {
BOOL https;
IHttpNegotiate *http_negotiate;
- LPWSTR full_header;
+ WCHAR *full_header;
LONG ref;
} HttpProtocol;
@@ -56,9 +56,8 @@ static inline HttpProtocol *impl_from_IWinInetHttpInfo(IWinInetHttpInfo *iface)
return CONTAINING_RECORD(iface, HttpProtocol, IWinInetHttpInfo_iface);
}
-/* Default headers from native */
-static const WCHAR wszHeaders[] = {'A','c','c','e','p','t','-','E','n','c','o','d','i','n','g',
- ':',' ','g','z','i','p',',',' ','d','e','f','l','a','t','e',0};
+static const WCHAR default_headersW[] = {
+ 'A','c','c','e','p','t','-','E','n','c','o','d','i','n','g',':',' ','g','z','i','p',',',' ','d','e','f','l','a','t','e',0};
static LPWSTR query_http_info(HttpProtocol *This, DWORD option)
{
@@ -277,7 +276,7 @@ static HRESULT HttpProtocol_open_request(Protocol *prot, IUri *uri, DWORD reques
LPOLESTR accept_mimes[257];
const WCHAR **accept_types;
BYTE security_id[512];
- DWORD len = 0, port;
+ DWORD len, port;
ULONG num, error;
BOOL res, b;
HRESULT hres;
@@ -371,7 +370,7 @@ static HRESULT HttpProtocol_open_request(Protocol *prot, IUri *uri, DWORD reques
return hres;
}
- hres = IHttpNegotiate_BeginningTransaction(This->http_negotiate, url, wszHeaders,
+ hres = IHttpNegotiate_BeginningTransaction(This->http_negotiate, url, default_headersW,
0, &addl_header);
SysFreeString(url);
if(hres != S_OK) {
@@ -380,18 +379,19 @@ static HRESULT HttpProtocol_open_request(Protocol *prot, IUri *uri, DWORD reques
return hres;
}
- if(addl_header) {
- int len_addl_header = strlenW(addl_header);
+ len = addl_header ? strlenW(addl_header) : 0;
- This->full_header = heap_alloc(len_addl_header*sizeof(WCHAR)+sizeof(wszHeaders));
-
- lstrcpyW(This->full_header, addl_header);
- lstrcpyW(&This->full_header[len_addl_header], wszHeaders);
- CoTaskMemFree(addl_header);
- }else {
- This->full_header = (LPWSTR)wszHeaders;
+ This->full_header = heap_alloc(len*sizeof(WCHAR)+sizeof(default_headersW));
+ if(!This->full_header) {
+ IServiceProvider_Release(service_provider);
+ return E_OUTOFMEMORY;
}
+ if(len)
+ memcpy(This->full_header, addl_header, len*sizeof(WCHAR));
+ CoTaskMemFree(addl_header);
+ memcpy(This->full_header+len, default_headersW, sizeof(default_headersW));
+
hres = IServiceProvider_QueryService(service_provider, &IID_IHttpNegotiate2,
&IID_IHttpNegotiate2, (void **)&http_negotiate2);
IServiceProvider_Release(service_provider);
@@ -525,13 +525,12 @@ static void HttpProtocol_close_connection(Protocol *prot)
if(This->http_negotiate) {
IHttpNegotiate_Release(This->http_negotiate);
- This->http_negotiate = 0;
+ This->http_negotiate = NULL;
}
if(This->full_header) {
- if(This->full_header != wszHeaders)
- heap_free(This->full_header);
- This->full_header = 0;
+ heap_free(This->full_header);
+ This->full_header = NULL;
}
}
More information about the wine-cvs
mailing list