[AMSTREAM] We don't need to define WIDL_C_INLINE_WRAPPERS here anymore.
[reactos.git] / dll / directx / wine / dplayx / dplayx_global.c
index 723744c..dcc021a 100644 (file)
@@ -66,9 +66,10 @@ static LPVOID lpSharedStaticData = NULL;
 
 typedef struct
 {
-  DWORD used;
-  DWORD data[dwBlockSize-sizeof(DWORD)];
+  BOOL used;
+  BYTE data[dwBlockSize - sizeof(BOOL)];
 } DPLAYX_MEM_SLICE;
+C_ASSERT(sizeof(DPLAYX_MEM_SLICE) == dwBlockSize);
 
 static DPLAYX_MEM_SLICE* lpMemArea;
 
@@ -83,10 +84,10 @@ static void DPLAYX_PrivHeapFree( LPVOID addr )
     return;
   }
 
-  lpAddrStart = (char*)addr - sizeof(DWORD); /* Find block header */
+  lpAddrStart = CONTAINING_RECORD(addr, DPLAYX_MEM_SLICE, data); /* Find block header */
   dwBlockUsed =  ((BYTE*)lpAddrStart - (BYTE*)lpMemArea)/dwBlockSize;
 
-  lpMemArea[ dwBlockUsed ].used = 0;
+  lpMemArea[ dwBlockUsed ].used = FALSE;
 }
 
 static LPVOID DPLAYX_PrivHeapAlloc( DWORD flags, DWORD size )
@@ -94,20 +95,20 @@ static LPVOID DPLAYX_PrivHeapAlloc( DWORD flags, DWORD size )
   LPVOID lpvArea = NULL;
   UINT   uBlockUsed;
 
-  if( size > (dwBlockSize - sizeof(DWORD)) )
+  if( size > (dwBlockSize - sizeof(BOOL)) )
   {
     FIXME( "Size exceeded. Request of 0x%08x\n", size );
-    size = dwBlockSize - sizeof(DWORD);
+    size = dwBlockSize - sizeof(BOOL);
   }
 
   /* Find blank area */
   uBlockUsed = 0;
-  while( ( lpMemArea[ uBlockUsed ].used != 0 ) && ( uBlockUsed <= dwMaxBlock ) ) { uBlockUsed++; }
+  while( lpMemArea[ uBlockUsed ].used && uBlockUsed <= dwMaxBlock ) { uBlockUsed++; }
 
   if( uBlockUsed <= dwMaxBlock )
   {
     /* Set the area used */
-    lpMemArea[ uBlockUsed ].used = 1;
+    lpMemArea[ uBlockUsed ].used = TRUE;
     lpvArea = lpMemArea[ uBlockUsed ].data;
   }
   else
@@ -164,7 +165,7 @@ static void DPLAYX_InitializeLobbyDataEntry( LPDPLAYX_LOBBYDATA lpData )
 }
 
 /* NOTE: This must be called with the semaphore acquired.
- * TRUE/FALSE with a pointer to it's data returned. Pointer data is
+ * TRUE/FALSE with a pointer to its data returned. Pointer data is
  * is only valid if TRUE is returned.
  */
 static BOOL DPLAYX_IsAppIdLobbied( DWORD dwAppID, LPDPLAYX_LOBBYDATA* lplpDplData )
@@ -1183,7 +1184,7 @@ LPCSTR DPLAYX_HresultToString(HRESULT hr)
       /* For errors not in the list, return HRESULT as a string
          This part is not thread safe */
       WARN( "Unknown error 0x%08x\n", hr );
-      wsprintfA( szTempStr, "0x%08lx", hr );
+      wsprintfA( szTempStr, "0x%08x", hr );
       return szTempStr;
   }
 }