Janitorial dlls/advapi32/registry.c W->A cleanup

Rolf Kalbermatter rolf.kalbermatter at citeng.com
Thu Mar 6 11:34:19 CST 2003


> Dmitry Timoshkov wrote:
>
>> "Tony Lambregts" <tony_lambregts at telusplanet.net> wrote:
>> Yeah I actually had it that way at one point due to my familairity 
>> with drive.c and well... I ran into some compiler errors (in 
>> RegSaveKeyW) that ended up making the problem worse. Perhaps it was 
>> something I simple I missed. I can take another look at it if it will 
>> save some CPU cycles.
>
>when I change the code to the following
>
 LONG WINAPI RegSaveKeyA( HKEY hkey, LPCSTR file, LPSECURITY_ATTRIBUTES sa )
 {
    WCHAR fileW[MAX_PATH];
-    LONG  ret, len;
+    LONG  ret;
 
-    len = WideCharToMultiByte(CP_ACP, 0, fileW, -1, file, 0, NULL, NULL);
-    WideCharToMultiByte(CP_ACP, 0, fileW, -1, file, len, NULL, NULL);
+    MultiByteToWideChar(CP_ACP, 0, file, -1, fileW, MAX_PATH);
-    ret = RegSaveKeyW( hkey, fileW.Buffer, sa );
+    ret = RegSaveKeyW( hkey, fileW, sa );
     return ret;
 }

>I get the following warning
>
>warning: passing arg 5 of `WideCharToMultiByte' discards qualifiers from 
>pointer target type

Well you should get a lot more warnings and even errors IMO. Look above as
to what I think the code should really look like.

Rolf Kalbermatter




More information about the wine-devel mailing list