ntdll: Avoid using HIWORD on types that are 64bit on Win64.
Michael Stefaniuc
mstefani at redhat.de
Wed Feb 10 04:43:59 CST 2010
---
dlls/ntdll/atom.c | 5 +++--
dlls/ntdll/relay.c | 5 +++--
dlls/ntdll/resource.c | 4 +++-
3 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/dlls/ntdll/atom.c b/dlls/ntdll/atom.c
index 27e27a2..8ac4b97 100644
--- a/dlls/ntdll/atom.c
+++ b/dlls/ntdll/atom.c
@@ -39,7 +39,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(atom);
-#define MAX_ATOM_LEN 255
+#define MAX_ATOM_LEN 255
+#define IS_INTATOM(x) (((ULONG_PTR)(x) >> 16) == 0)
/******************************************************************
* is_integral_atom
@@ -51,7 +52,7 @@ static NTSTATUS is_integral_atom( LPCWSTR atomstr, size_t len, RTL_ATOM* pAtom )
{
RTL_ATOM atom;
- if (HIWORD( atomstr ))
+ if (!IS_INTATOM( atomstr ))
{
const WCHAR* ptr = atomstr;
if (!len) return STATUS_OBJECT_NAME_INVALID;
diff --git a/dlls/ntdll/relay.c b/dlls/ntdll/relay.c
index 7fd3c35..ee042de 100644
--- a/dlls/ntdll/relay.c
+++ b/dlls/ntdll/relay.c
@@ -52,6 +52,7 @@ struct relay_descr /* descriptor for a module */
};
#define RELAY_DESCR_MAGIC ((void *)0xdeb90001)
+#define IS_INTARG(x) (((ULONG_PTR)(x) >> 16) == 0)
/* private data built at dll load time */
@@ -303,7 +304,7 @@ static inline void RELAY_PrintArgs( const INT_PTR *args, int nb_args, unsigned i
{
while (nb_args--)
{
- if ((typemask & 3) && HIWORD(*args))
+ if ((typemask & 3) && !IS_INTARG(*args))
{
if (typemask & 2)
DPRINTF( "%08lx %s", *args, debugstr_w((LPCWSTR)*args) );
@@ -880,7 +881,7 @@ static void SNOOP_PrintArg(DWORD x)
int i,nostring;
DPRINTF("%08x",x);
- if (!HIWORD(x) || TRACE_ON(seh)) return; /* trivial reject to avoid faults */
+ if (IS_INTARG(x) || TRACE_ON(seh)) return; /* trivial reject to avoid faults */
__TRY
{
LPBYTE s=(LPBYTE)x;
diff --git a/dlls/ntdll/resource.c b/dlls/ntdll/resource.c
index ff0a5d0..f93a705 100644
--- a/dlls/ntdll/resource.c
+++ b/dlls/ntdll/resource.c
@@ -49,6 +49,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(resource);
static LCID user_lcid, system_lcid;
static LANGID user_ui_language, system_ui_language;
+#define IS_INTRESOURCE(x) (((ULONG_PTR)(x) >> 16) == 0)
+
/**********************************************************************
* is_data_file_module
*
@@ -142,7 +144,7 @@ static const IMAGE_RESOURCE_DIRECTORY *find_entry_by_name( const IMAGE_RESOURCE_
const IMAGE_RESOURCE_DIR_STRING_U *str;
int min, max, res, pos, namelen;
- if (!HIWORD(name)) return find_entry_by_id( dir, LOWORD(name), root, want_dir );
+ if (IS_INTRESOURCE(name)) return find_entry_by_id( dir, LOWORD(name), root, want_dir );
entry = (const IMAGE_RESOURCE_DIRECTORY_ENTRY *)(dir + 1);
namelen = strlenW(name);
min = 0;
--
1.7.0.rc2
More information about the wine-patches
mailing list