version: Constify a formal parameter of VerQueryValue{A|W}()
Andrew Talbot
Andrew.Talbot at talbotville.com
Wed Feb 14 11:15:49 CST 2007
This patch constifies the first parameter of VerQueryValue{A|W}(). However, I
was unable to find a better way than this, which introduces four new cast-qual
warnings (for lines 704, 745, 786, 834.
If you reject this patch, please advise on what needs doing to make it
acceptable.
Thanks,
-- Andy.
---
Changelog:
version: Constify a formal parameter of VerQueryValue{A|W}().
diff -urN a/dlls/version/info.c b/dlls/version/info.c
--- a/dlls/version/info.c 2007-02-14 15:56:13.000000000 +0000
+++ b/dlls/version/info.c 2007-02-13 23:32:37.000000000 +0000
@@ -46,7 +46,7 @@
* Added this function to clean up the code.
*
*****************************************************************************/
-static void print_vffi_debug(VS_FIXEDFILEINFO *vffi)
+static void print_vffi_debug(const VS_FIXEDFILEINFO *vffi)
{
BOOL versioned_printer = FALSE;
@@ -207,10 +207,10 @@
} VS_VERSION_INFO_STRUCT32;
#define VersionInfoIs16( ver ) \
- ( ((VS_VERSION_INFO_STRUCT16 *)ver)->szKey[0] >= ' ' )
+ ( ((const VS_VERSION_INFO_STRUCT16 *)ver)->szKey[0] >= ' ' )
#define DWORD_ALIGN( base, ptr ) \
- ( (LPBYTE)(base) + ((((LPBYTE)(ptr) - (LPBYTE)(base)) + 3) & ~3) )
+ ( (const BYTE *)(base) + ((((const BYTE *)(ptr) - (const BYTE *)(base)) + 3) & ~3) )
#define VersionInfo16_Value( ver ) \
DWORD_ALIGN( (ver), (ver)->szKey + strlen((ver)->szKey) + 1 )
@@ -218,17 +218,17 @@
DWORD_ALIGN( (ver), (ver)->szKey + strlenW((ver)->szKey) + 1 )
#define VersionInfo16_Children( ver ) \
- (VS_VERSION_INFO_STRUCT16 *)( VersionInfo16_Value( ver ) + \
+ (const VS_VERSION_INFO_STRUCT16 *)( VersionInfo16_Value( ver ) + \
( ( (ver)->wValueLength + 3 ) & ~3 ) )
#define VersionInfo32_Children( ver ) \
- (VS_VERSION_INFO_STRUCT32 *)( VersionInfo32_Value( ver ) + \
+ (const VS_VERSION_INFO_STRUCT32 *)( VersionInfo32_Value( ver ) + \
( ( (ver)->wValueLength * \
((ver)->wType? 2 : 1) + 3 ) & ~3 ) )
#define VersionInfo16_Next( ver ) \
- (VS_VERSION_INFO_STRUCT16 *)( (LPBYTE)ver + (((ver)->wLength + 3) & ~3) )
+ (const VS_VERSION_INFO_STRUCT16 *)( (const BYTE *)ver + (((ver)->wLength + 3) & ~3) )
#define VersionInfo32_Next( ver ) \
- (VS_VERSION_INFO_STRUCT32 *)( (LPBYTE)ver + (((ver)->wLength + 3) & ~3) )
+ (const VS_VERSION_INFO_STRUCT32 *)( (const BYTE *)ver + (((ver)->wLength + 3) & ~3) )
/***********************************************************************
* VERSION_GetFileVersionInfo_PE [internal]
@@ -238,7 +238,7 @@
*/
static DWORD VERSION_GetFileVersionInfo_PE( LPCWSTR filename, DWORD datasize, LPVOID data )
{
- VS_FIXEDFILEINFO *vffi;
+ const VS_FIXEDFILEINFO *vffi;
DWORD len;
BYTE *buf;
HMODULE hModule;
@@ -276,7 +276,7 @@
}
buf = LockResource(hMem);
- vffi = (VS_FIXEDFILEINFO *)VersionInfo32_Value( (VS_VERSION_INFO_STRUCT32 *)buf );
+ vffi = (const VS_FIXEDFILEINFO *)VersionInfo32_Value( (VS_VERSION_INFO_STRUCT32 *)buf );
if ( vffi->dwSignature != VS_FFI_SIGNATURE )
{
@@ -313,7 +313,7 @@
*/
static DWORD VERSION_GetFileVersionInfo_16( LPCSTR filename, DWORD datasize, LPVOID data )
{
- VS_FIXEDFILEINFO *vffi;
+ const VS_FIXEDFILEINFO *vffi;
DWORD len, offset;
BYTE *buf;
HMODULE16 hModule;
@@ -363,7 +363,7 @@
offset, datasize, data );
if (len)
{
- vffi = (VS_FIXEDFILEINFO *)VersionInfo16_Value( (VS_VERSION_INFO_STRUCT16 *)data );
+ vffi = (const VS_FIXEDFILEINFO *)VersionInfo16_Value( (VS_VERSION_INFO_STRUCT16 *)data );
if ( vffi->dwSignature == VS_FFI_SIGNATURE )
{
@@ -410,7 +410,7 @@
goto END;
}
- vffi = (VS_FIXEDFILEINFO *)VersionInfo16_Value( (VS_VERSION_INFO_STRUCT16 *)buf );
+ vffi = (const VS_FIXEDFILEINFO *)VersionInfo16_Value( (VS_VERSION_INFO_STRUCT16 *)buf );
if ( vffi->dwSignature != VS_FFI_SIGNATURE )
{
@@ -633,12 +633,12 @@
/***********************************************************************
* VersionInfo16_FindChild [internal]
*/
-static VS_VERSION_INFO_STRUCT16 *VersionInfo16_FindChild( VS_VERSION_INFO_STRUCT16 *info,
+static const VS_VERSION_INFO_STRUCT16 *VersionInfo16_FindChild( const VS_VERSION_INFO_STRUCT16 *info,
LPCSTR szKey, UINT cbKey )
{
- VS_VERSION_INFO_STRUCT16 *child = VersionInfo16_Children( info );
+ const VS_VERSION_INFO_STRUCT16 *child = VersionInfo16_Children( info );
- while ((char *)child < (char *)info + info->wLength )
+ while ((const char *)child < (const char *)info + info->wLength )
{
if ( !strncasecmp( child->szKey, szKey, cbKey ) )
return child;
@@ -653,12 +653,12 @@
/***********************************************************************
* VersionInfo32_FindChild [internal]
*/
-static VS_VERSION_INFO_STRUCT32 *VersionInfo32_FindChild( VS_VERSION_INFO_STRUCT32 *info,
+static const VS_VERSION_INFO_STRUCT32 *VersionInfo32_FindChild( const VS_VERSION_INFO_STRUCT32 *info,
LPCWSTR szKey, UINT cbKey )
{
- VS_VERSION_INFO_STRUCT32 *child = VersionInfo32_Children( info );
+ const VS_VERSION_INFO_STRUCT32 *child = VersionInfo32_Children( info );
- while ((char *)child < (char *)info + info->wLength )
+ while ((const char *)child < (const char *)info + info->wLength )
{
if ( !strncmpiW( child->szKey, szKey, cbKey ) )
return child;
@@ -674,7 +674,7 @@
*
* Gets a value from a 16-bit NE resource
*/
-static BOOL WINAPI VersionInfo16_QueryValue( VS_VERSION_INFO_STRUCT16 *info, LPCSTR lpSubBlock,
+static BOOL WINAPI VersionInfo16_QueryValue( const VS_VERSION_INFO_STRUCT16 *info, LPCSTR lpSubBlock,
LPVOID *lplpBuffer, UINT *puLen )
{
while ( *lpSubBlock )
@@ -701,7 +701,7 @@
}
/* Return value */
- *lplpBuffer = VersionInfo16_Value( info );
+ *lplpBuffer = (LPBYTE)VersionInfo16_Value( info );
if (puLen)
*puLen = info->wValueLength;
@@ -713,7 +713,7 @@
*
* Gets a value from a 32-bit PE resource
*/
-static BOOL WINAPI VersionInfo32_QueryValue( VS_VERSION_INFO_STRUCT32 *info, LPCWSTR lpSubBlock,
+static BOOL WINAPI VersionInfo32_QueryValue( const VS_VERSION_INFO_STRUCT32 *info, LPCWSTR lpSubBlock,
LPVOID *lplpBuffer, UINT *puLen )
{
TRACE("lpSubBlock : (%s)\n", debugstr_w(lpSubBlock));
@@ -742,7 +742,7 @@
}
/* Return value */
- *lplpBuffer = VersionInfo32_Value( info );
+ *lplpBuffer = (LPBYTE)VersionInfo32_Value( info );
if (puLen)
*puLen = info->wValueLength;
@@ -752,12 +752,12 @@
/***********************************************************************
* VerQueryValueA [VERSION.@]
*/
-BOOL WINAPI VerQueryValueA( LPVOID pBlock, LPCSTR lpSubBlock,
+BOOL WINAPI VerQueryValueA( LPCVOID pBlock, LPCSTR lpSubBlock,
LPVOID *lplpBuffer, UINT *puLen )
{
static const char rootA[] = "\\";
static const char varfileinfoA[] = "\\VarFileInfo\\Translation";
- VS_VERSION_INFO_STRUCT16 *info = (VS_VERSION_INFO_STRUCT16 *)pBlock;
+ const VS_VERSION_INFO_STRUCT16 *info = (const VS_VERSION_INFO_STRUCT16 *)pBlock;
TRACE("(%p,%s,%p,%p)\n",
pBlock, debugstr_a(lpSubBlock), lplpBuffer, puLen );
@@ -783,7 +783,7 @@
if (ret && strcasecmp( lpSubBlock, rootA ) && strcasecmp( lpSubBlock, varfileinfoA ))
{
LPSTR lpBufferA = (LPSTR)pBlock + info->wLength + 4;
- DWORD pos = (LPSTR)*lplpBuffer - (LPSTR)pBlock;
+ DWORD pos = (LPSTR)*lplpBuffer - (LPCSTR)pBlock;
len = WideCharToMultiByte(CP_ACP, 0, (LPCWSTR)*lplpBuffer, -1,
lpBufferA + pos, info->wLength - pos, NULL, NULL);
@@ -799,14 +799,14 @@
/***********************************************************************
* VerQueryValueW [VERSION.@]
*/
-BOOL WINAPI VerQueryValueW( LPVOID pBlock, LPCWSTR lpSubBlock,
+BOOL WINAPI VerQueryValueW( LPCVOID pBlock, LPCWSTR lpSubBlock,
LPVOID *lplpBuffer, UINT *puLen )
{
static const WCHAR rootW[] = { '\\', 0 };
static const WCHAR varfileinfoW[] = { '\\','V','a','r','F','i','l','e','I','n','f','o',
'\\','T','r','a','n','s','l','a','t','i','o','n', 0 };
- VS_VERSION_INFO_STRUCT32 *info = (VS_VERSION_INFO_STRUCT32 *)pBlock;
+ const VS_VERSION_INFO_STRUCT32 *info = (const VS_VERSION_INFO_STRUCT32 *)pBlock;
TRACE("(%p,%s,%p,%p)\n",
pBlock, debugstr_w(lpSubBlock), lplpBuffer, puLen );
@@ -831,8 +831,8 @@
if (ret && strcmpiW( lpSubBlock, rootW ) && strcmpiW( lpSubBlock, varfileinfoW ))
{
- LPWSTR lpBufferW = (LPWSTR)((LPSTR)pBlock + info->wLength);
- DWORD pos = (LPSTR)*lplpBuffer - (LPSTR)pBlock;
+ LPWSTR lpBufferW = (LPWSTR)((LPCSTR)pBlock + info->wLength);
+ DWORD pos = (LPSTR)*lplpBuffer - (LPCSTR)pBlock;
DWORD max = (info->wLength - sizeof(VS_FIXEDFILEINFO)) * 4 - info->wLength;
len = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)*lplpBuffer, -1,
diff -urN a/include/winver.h b/include/winver.h
--- a/include/winver.h 2007-02-14 15:56:18.000000000 +0000
+++ b/include/winver.h 2007-02-13 21:53:48.000000000 +0000
@@ -159,8 +159,8 @@
DWORD WINAPI VerLanguageNameA(UINT,LPSTR,UINT);
DWORD WINAPI VerLanguageNameW(UINT,LPWSTR,UINT);
#define VerLanguageName WINELIB_NAME_AW(VerLanguageName)
-BOOL WINAPI VerQueryValueA(LPVOID,LPCSTR,LPVOID*,UINT*);
-BOOL WINAPI VerQueryValueW(LPVOID,LPCWSTR,LPVOID*,UINT*);
+BOOL WINAPI VerQueryValueA(LPCVOID,LPCSTR,LPVOID*,UINT*);
+BOOL WINAPI VerQueryValueW(LPCVOID,LPCWSTR,LPVOID*,UINT*);
#define VerQueryValue WINELIB_NAME_AW(VerQueryValue)
DWORD WINAPI GetFileVersionInfoSizeA(LPCSTR,LPDWORD);
DWORD WINAPI GetFileVersionInfoSizeW(LPCWSTR,LPDWORD);
More information about the wine-patches
mailing list