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