fix code that depends on GCC's void* pointer arithmetic extension

svn path=/trunk/; revision=16421
This commit is contained in:
Thomas Bluemel 2005-07-05 00:57:47 +00:00
parent 945ed508b6
commit bd691c850c
17 changed files with 135 additions and 192 deletions

View file

@ -89,15 +89,9 @@ ReadCacheSegmentChain(PBCB Bcb, ULONG ReadOffset, ULONG Length,
{ {
TempLength = min(Bcb->CacheSegmentSize, Length); TempLength = min(Bcb->CacheSegmentSize, Length);
memcpy(Buffer, current->BaseAddress, TempLength); memcpy(Buffer, current->BaseAddress, TempLength);
#if defined(__GNUC__)
Buffer += TempLength; Buffer = (PVOID)((ULONG_PTR)Buffer + TempLength);
#else
{
char* pTemp = Buffer;
pTemp += TempLength;
Buffer = pTemp;
}
#endif
Length = Length - TempLength; Length = Length - TempLength;
previous = current; previous = current;
current = current->NextInChain; current = current->NextInChain;
@ -180,15 +174,9 @@ ReadCacheSegmentChain(PBCB Bcb, ULONG ReadOffset, ULONG Length,
current = current->NextInChain; current = current->NextInChain;
TempLength = min(Bcb->CacheSegmentSize, Length); TempLength = min(Bcb->CacheSegmentSize, Length);
memcpy(Buffer, previous->BaseAddress, TempLength); memcpy(Buffer, previous->BaseAddress, TempLength);
#if defined(__GNUC__)
Buffer += TempLength; Buffer = (PVOID)((ULONG_PTR)Buffer + TempLength);
#else
{
char* pTemp = Buffer;
pTemp += TempLength;
Buffer = pTemp;
}
#endif
Length = Length - TempLength; Length = Length - TempLength;
CcRosReleaseCacheSegment(Bcb, previous, TRUE, FALSE, FALSE); CcRosReleaseCacheSegment(Bcb, previous, TRUE, FALSE, FALSE);
current_size += Bcb->CacheSegmentSize; current_size += Bcb->CacheSegmentSize;
@ -393,15 +381,8 @@ CcCopyRead (IN PFILE_OBJECT FileObject,
ReadLength += TempLength; ReadLength += TempLength;
Length -= TempLength; Length -= TempLength;
ReadOffset += TempLength; ReadOffset += TempLength;
#if defined(__GNUC__)
Buffer += TempLength; Buffer = (PVOID)((ULONG_PTR)Buffer + TempLength);
#else
{
char* pTemp = Buffer;
pTemp += TempLength;
Buffer = pTemp;
}
#endif
} }
IoStatus->Status = STATUS_SUCCESS; IoStatus->Status = STATUS_SUCCESS;
IoStatus->Information = ReadLength; IoStatus->Information = ReadLength;
@ -488,15 +469,8 @@ CcCopyWrite (IN PFILE_OBJECT FileObject,
Length -= TempLength; Length -= TempLength;
WriteOffset += TempLength; WriteOffset += TempLength;
#if defined(__GNUC__)
Buffer += TempLength; Buffer = (PVOID)((ULONG_PTR)Buffer + TempLength);
#else
{
char* pTemp = Buffer;
pTemp += TempLength;
Buffer = pTemp;
}
#endif
} }
while (Length > 0) while (Length > 0)
@ -520,15 +494,8 @@ CcCopyWrite (IN PFILE_OBJECT FileObject,
CcRosReleaseCacheSegment(Bcb, CacheSeg, TRUE, TRUE, FALSE); CcRosReleaseCacheSegment(Bcb, CacheSeg, TRUE, TRUE, FALSE);
Length -= TempLength; Length -= TempLength;
WriteOffset += TempLength; WriteOffset += TempLength;
#if defined(__GNUC__)
Buffer += TempLength; Buffer = (PVOID)((ULONG_PTR)Buffer + TempLength);
#else
{
char* pTemp = Buffer;
pTemp += TempLength;
Buffer = pTemp;
}
#endif
} }
return(TRUE); return(TRUE);
} }

View file

@ -78,15 +78,8 @@ CcMapData (IN PFILE_OBJECT FileObject,
return(FALSE); return(FALSE);
} }
} }
#if defined(__GNUC__)
*pBuffer += ReadOffset % Bcb->CacheSegmentSize; *pBuffer = (PVOID)((ULONG_PTR)(*pBuffer) + (ReadOffset % Bcb->CacheSegmentSize));
#else
{
char* pTemp = *pBuffer;
pTemp += ReadOffset % Bcb->CacheSegmentSize;
*pBuffer = pTemp;
}
#endif
iBcb = ExAllocateFromNPagedLookasideList(&iBcbLookasideList); iBcb = ExAllocateFromNPagedLookasideList(&iBcbLookasideList);
if (iBcb == NULL) if (iBcb == NULL)
{ {

View file

@ -729,7 +729,7 @@ KeDumpStackFrames(PULONG Frame)
} }
StackBase = Frame; StackBase = Frame;
StackEnd = mbi.BaseAddress + mbi.RegionSize; StackEnd = (PULONG)((ULONG_PTR)mbi.BaseAddress + mbi.RegionSize);
while ( Frame >= StackBase && Frame < StackEnd ) while ( Frame >= StackBase && Frame < StackEnd )
{ {
@ -786,7 +786,7 @@ KeRosDumpStackFrames ( PULONG Frame, ULONG FrameCount )
} }
StackBase = Frame; StackBase = Frame;
StackEnd = mbi.BaseAddress + mbi.RegionSize; StackEnd = (PULONG)((ULONG_PTR)mbi.BaseAddress + mbi.RegionSize);
while ( Frame >= StackBase && Frame < StackEnd && i++ < FrameCount ) while ( Frame >= StackBase && Frame < StackEnd && i++ < FrameCount )
{ {
@ -838,7 +838,7 @@ KeRosGetStackFrames ( PULONG Frames, ULONG FrameCount )
} }
StackBase = Frame; StackBase = Frame;
StackEnd = mbi.BaseAddress + mbi.RegionSize; StackEnd = (PULONG)((ULONG_PTR)mbi.BaseAddress + mbi.RegionSize);
while ( Count < FrameCount && Frame >= StackBase && Frame < StackEnd ) while ( Count < FrameCount && Frame >= StackBase && Frame < StackEnd )
{ {

View file

@ -502,7 +502,7 @@ MmGetPageTableForProcessForPAE(PEPROCESS Process, PVOID Address, BOOLEAN Create)
DPRINT("MmGetPageTableForProcessForPAE(%x %x %d)\n", DPRINT("MmGetPageTableForProcessForPAE(%x %x %d)\n",
Process, Address, Create); Process, Address, Create);
if (Address >= (PVOID)PAGETABLE_MAP && Address < (PVOID)PAGETABLE_MAP + 0x800000) if (Address >= (PVOID)PAGETABLE_MAP && Address < (PVOID)((ULONG_PTR)PAGETABLE_MAP + 0x800000))
{ {
KEBUGCHECK(0); KEBUGCHECK(0);
} }
@ -1500,7 +1500,7 @@ MmCreateVirtualMappingForKernel(PVOID Address,
ULONGLONG Pte; ULONGLONG Pte;
oldPdeOffset = PAE_ADDR_TO_PDE_OFFSET(Addr) + 1; oldPdeOffset = PAE_ADDR_TO_PDE_OFFSET(Addr) + 1;
for (i = 0; i < PageCount; i++, Addr += PAGE_SIZE) for (i = 0; i < PageCount; i++, Addr = (PVOID)((ULONG_PTR)Addr + PAGE_SIZE))
{ {
if (!(Attributes & PA_PRESENT) && Pages[i] != 0) if (!(Attributes & PA_PRESENT) && Pages[i] != 0)
{ {
@ -1550,7 +1550,7 @@ MmCreateVirtualMappingForKernel(PVOID Address,
} }
Pt--; Pt--;
for (i = 0; i < PageCount; i++, Addr += PAGE_SIZE) for (i = 0; i < PageCount; i++, Addr = (PVOID)((ULONG_PTR)Addr + PAGE_SIZE))
{ {
if (!(Attributes & PA_PRESENT) && Pages[i] != 0) if (!(Attributes & PA_PRESENT) && Pages[i] != 0)
{ {
@ -1746,7 +1746,7 @@ MmCreateVirtualMappingUnsafe(PEPROCESS Process,
PULONGLONG Pt = NULL; PULONGLONG Pt = NULL;
oldPdeOffset = PAE_ADDR_TO_PDE_OFFSET(Addr) + 1; oldPdeOffset = PAE_ADDR_TO_PDE_OFFSET(Addr) + 1;
for (i = 0; i < PageCount; i++, Addr += PAGE_SIZE) for (i = 0; i < PageCount; i++, Addr = (PVOID)((ULONG_PTR)Addr + PAGE_SIZE))
{ {
if (!(Attributes & PA_PRESENT) && Pages[i] != 0) if (!(Attributes & PA_PRESENT) && Pages[i] != 0)
{ {
@ -1815,7 +1815,7 @@ MmCreateVirtualMappingUnsafe(PEPROCESS Process,
PULONG Pt = NULL; PULONG Pt = NULL;
ULONG Pte; ULONG Pte;
oldPdeOffset = ADDR_TO_PDE_OFFSET(Addr) + 1; oldPdeOffset = ADDR_TO_PDE_OFFSET(Addr) + 1;
for (i = 0; i < PageCount; i++, Addr += PAGE_SIZE) for (i = 0; i < PageCount; i++, Addr = (PVOID)((ULONG_PTR)Addr + PAGE_SIZE))
{ {
if (!(Attributes & PA_PRESENT) && Pages[i] != 0) if (!(Attributes & PA_PRESENT) && Pages[i] != 0)
{ {
@ -2182,7 +2182,7 @@ MmCreateHyperspaceMapping(PFN_TYPE Page)
} }
} }
} }
Address = (PVOID)HYPERSPACE + i * PAGE_SIZE; Address = (PVOID)((ULONG_PTR)HYPERSPACE + i * PAGE_SIZE);
FLUSH_TLB_ONE(Address); FLUSH_TLB_ONE(Address);
return Address; return Address;
} }
@ -2244,7 +2244,7 @@ VOID MmUpdatePageDir(PEPROCESS Process, PVOID Address, ULONG Size)
ULONGLONG ZeroPde = 0LL; ULONGLONG ZeroPde = 0LL;
ULONG i; ULONG i;
for (i = PAE_ADDR_TO_PDTE_OFFSET(Address); i <= PAE_ADDR_TO_PDTE_OFFSET(Address + Size); i++) for (i = PAE_ADDR_TO_PDTE_OFFSET(Address); i <= PAE_ADDR_TO_PDTE_OFFSET((PVOID)((ULONG_PTR)Address + Size)); i++)
{ {
if (i == PAE_ADDR_TO_PDTE_OFFSET(Address)) if (i == PAE_ADDR_TO_PDTE_OFFSET(Address))
{ {
@ -2254,9 +2254,9 @@ VOID MmUpdatePageDir(PEPROCESS Process, PVOID Address, ULONG Size)
{ {
StartOffset = 0; StartOffset = 0;
} }
if (i == PAE_ADDR_TO_PDTE_OFFSET(Address + Size)) if (i == PAE_ADDR_TO_PDTE_OFFSET((PVOID)((ULONG_PTR)Address + Size)))
{ {
EndOffset = PAE_ADDR_TO_PDE_PAGE_OFFSET(Address + Size); EndOffset = PAE_ADDR_TO_PDE_PAGE_OFFSET((PVOID)((ULONG_PTR)Address + Size));
} }
else else
{ {
@ -2288,7 +2288,7 @@ VOID MmUpdatePageDir(PEPROCESS Process, PVOID Address, ULONG Size)
{ {
PULONG Pde; PULONG Pde;
StartOffset = ADDR_TO_PDE_OFFSET(Address); StartOffset = ADDR_TO_PDE_OFFSET(Address);
EndOffset = ADDR_TO_PDE_OFFSET(Address + Size); EndOffset = ADDR_TO_PDE_OFFSET((PVOID)((ULONG_PTR)Address + Size));
if (Process != NULL && Process != PsGetCurrentProcess()) if (Process != NULL && Process != PsGetCurrentProcess())
{ {

View file

@ -170,16 +170,8 @@ MmAlterRegion(PMADDRESS_SPACE AddressSpace, PVOID BaseAddress,
CurrentRegion->Type, CurrentRegion->Protect, CurrentRegion->Type, CurrentRegion->Protect,
NewType, NewProtect); NewType, NewProtect);
} }
#if defined(__GNUC__)
CurrentBaseAddress += CurrentRegion->Length;
#else
{ CurrentBaseAddress = (PVOID)((ULONG_PTR)CurrentBaseAddress + CurrentRegion->Length);
char* pTemp = CurrentBaseAddress;
pTemp += CurrentRegion->Length;
CurrentBaseAddress = pTemp;
}
#endif
NewRegion->Length += CurrentRegion->Length; NewRegion->Length += CurrentRegion->Length;
RemainingLength -= CurrentRegion->Length; RemainingLength -= CurrentRegion->Length;
CurrentEntry = CurrentEntry->Flink; CurrentEntry = CurrentEntry->Flink;
@ -283,17 +275,8 @@ MmFindRegion(PVOID BaseAddress, PLIST_ENTRY RegionListHead, PVOID Address,
} }
current_entry = current_entry->Flink; current_entry = current_entry->Flink;
#if defined(__GNUC__)
StartAddress += current->Length; StartAddress = (PVOID)((ULONG_PTR)StartAddress + current->Length);
#else
{
char* pTemp = StartAddress;
pTemp += current->Length;
StartAddress = pTemp;
}
#endif
} }
return(NULL); return(NULL);

View file

@ -2273,8 +2273,8 @@ CSR_API(CsrWriteConsoleOutput)
BufferCoord = Request->Data.WriteConsoleOutputRequest.BufferCoord; BufferCoord = Request->Data.WriteConsoleOutputRequest.BufferCoord;
CharInfo = Request->Data.WriteConsoleOutputRequest.CharInfo; CharInfo = Request->Data.WriteConsoleOutputRequest.CharInfo;
if (((PVOID)CharInfo < ProcessData->CsrSectionViewBase) || if (((PVOID)CharInfo < ProcessData->CsrSectionViewBase) ||
(((PVOID)CharInfo + PSize) > (((ULONG_PTR)CharInfo + PSize) >
(ProcessData->CsrSectionViewBase + ProcessData->CsrSectionViewSize))) ((ULONG_PTR)ProcessData->CsrSectionViewBase + ProcessData->CsrSectionViewSize)))
{ {
ConioUnlockScreenBuffer(Buff); ConioUnlockScreenBuffer(Buff);
ConioUnlockConsole(Console); ConioUnlockConsole(Console);
@ -2690,7 +2690,7 @@ CSR_API(CsrPeekConsoleInput)
Size = Length * sizeof(INPUT_RECORD); Size = Length * sizeof(INPUT_RECORD);
if (((PVOID)InputRecord < ProcessData->CsrSectionViewBase) if (((PVOID)InputRecord < ProcessData->CsrSectionViewBase)
|| (((PVOID)InputRecord + Size) > (ProcessData->CsrSectionViewBase + ProcessData->CsrSectionViewSize))) || (((ULONG_PTR)InputRecord + Size) > ((ULONG_PTR)ProcessData->CsrSectionViewBase + ProcessData->CsrSectionViewSize)))
{ {
ConioUnlockConsole(Console); ConioUnlockConsole(Console);
Request->Status = STATUS_ACCESS_VIOLATION; Request->Status = STATUS_ACCESS_VIOLATION;
@ -2776,7 +2776,7 @@ CSR_API(CsrReadConsoleOutput)
CodePage = ProcessData->Console->OutputCodePage; CodePage = ProcessData->Console->OutputCodePage;
if (((PVOID)CharInfo < ProcessData->CsrSectionViewBase) if (((PVOID)CharInfo < ProcessData->CsrSectionViewBase)
|| (((PVOID)CharInfo + Size) > (ProcessData->CsrSectionViewBase + ProcessData->CsrSectionViewSize))) || (((ULONG_PTR)CharInfo + Size) > ((ULONG_PTR)ProcessData->CsrSectionViewBase + ProcessData->CsrSectionViewSize)))
{ {
ConioUnlockScreenBuffer(Buff); ConioUnlockScreenBuffer(Buff);
Request->Status = STATUS_ACCESS_VIOLATION; Request->Status = STATUS_ACCESS_VIOLATION;
@ -2856,7 +2856,7 @@ CSR_API(CsrWriteConsoleInput)
Size = Length * sizeof(INPUT_RECORD); Size = Length * sizeof(INPUT_RECORD);
if (((PVOID)InputRecord < ProcessData->CsrSectionViewBase) if (((PVOID)InputRecord < ProcessData->CsrSectionViewBase)
|| (((PVOID)InputRecord + Size) > (ProcessData->CsrSectionViewBase + ProcessData->CsrSectionViewSize))) || (((ULONG_PTR)InputRecord + Size) > ((ULONG_PTR)ProcessData->CsrSectionViewBase + ProcessData->CsrSectionViewSize)))
{ {
ConioUnlockConsole(Console); ConioUnlockConsole(Console);
Request->Status = STATUS_ACCESS_VIOLATION; Request->Status = STATUS_ACCESS_VIOLATION;

View file

@ -293,7 +293,7 @@ TuiSwapConsole(int Next)
0, 0,
sizeof(COORD) + Title.MaximumLength); sizeof(COORD) + Title.MaximumLength);
pos = (COORD *)Buffer; pos = (COORD *)Buffer;
Title.Buffer = Buffer + sizeof( COORD ); Title.Buffer = (PVOID)((ULONG_PTR)Buffer + sizeof( COORD ));
RtlUnicodeStringToAnsiString(&Title, &SwapConsole->Title, FALSE); RtlUnicodeStringToAnsiString(&Title, &SwapConsole->Title, FALSE);
pos->Y = PhysicalConsoleSize.Y / 2; pos->Y = PhysicalConsoleSize.Y / 2;

View file

@ -1033,7 +1033,7 @@ ULONG CabinetExtractFile( PCAB_SEARCH Search )
Status = CAB_STATUS_INVALID_CAB; Status = CAB_STATUS_INVALID_CAB;
goto UnmapDestFile; goto UnmapDestFile;
} }
CurrentDestBuffer += OutputLength; // advance dest buffer by bytes produced CurrentDestBuffer = (PVOID)((ULONG_PTR)CurrentDestBuffer + OutputLength); // advance dest buffer by bytes produced
CurrentBuffer += InputLength; // advance src buffer by bytes consumed CurrentBuffer += InputLength; // advance src buffer by bytes consumed
Size -= OutputLength; // reduce remaining file bytes by bytes produced Size -= OutputLength; // reduce remaining file bytes by bytes produced
RemainingBlock -= InputLength; // reduce remaining block size by bytes consumed RemainingBlock -= InputLength; // reduce remaining block size by bytes consumed

View file

@ -26,7 +26,7 @@
VOID VOID
DIB_16BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c) DIB_16BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
{ {
PBYTE byteaddr = SurfObj->pvScan0 + y * SurfObj->lDelta; PBYTE byteaddr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta;
PWORD addr = (PWORD)byteaddr + x; PWORD addr = (PWORD)byteaddr + x;
*addr = (WORD)c; *addr = (WORD)c;
@ -35,7 +35,7 @@ DIB_16BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
ULONG ULONG
DIB_16BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y) DIB_16BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y)
{ {
PBYTE byteaddr = SurfObj->pvScan0 + y * SurfObj->lDelta; PBYTE byteaddr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta;
PWORD addr = (PWORD)byteaddr + x; PWORD addr = (PWORD)byteaddr + x;
return (ULONG)(*addr); return (ULONG)(*addr);
@ -44,7 +44,7 @@ DIB_16BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y)
VOID VOID
DIB_16BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c) DIB_16BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
{ {
PDWORD addr = (PDWORD)((PWORD)(SurfObj->pvScan0 + y * SurfObj->lDelta) + x1); PDWORD addr = (PDWORD)((PWORD)((PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta) + x1);
#ifdef _M_IX86 #ifdef _M_IX86
@ -126,7 +126,7 @@ DIB_16BPP_VLine(SURFOBJ *SurfObj, LONG x, LONG y1, LONG y2, ULONG c)
" jnz 1b" "\n\t" " jnz 1b" "\n\t"
"2:" "\n\t" "2:" "\n\t"
: /* no output */ : /* no output */
: "r"(SurfObj->pvScan0 + (y1 * SurfObj->lDelta) + (x * sizeof (WORD))), : "r"((PBYTE)SurfObj->pvScan0 + (y1 * SurfObj->lDelta) + (x * sizeof (WORD))),
"r"(SurfObj->lDelta), "r"(y2 - y1), "a"(c) "r"(SurfObj->lDelta), "r"(y2 - y1), "a"(c)
: "cc", "memory", "%ecx"); : "cc", "memory", "%ecx");
#else #else
@ -150,7 +150,7 @@ DIB_16BPP_BitBltSrcCopy(PBLTINFO BltInfo)
LONG i, j, sx, sy, xColor, f1; LONG i, j, sx, sy, xColor, f1;
PBYTE SourceBits, DestBits, SourceLine, DestLine; PBYTE SourceBits, DestBits, SourceLine, DestLine;
PBYTE SourceBits_4BPP, SourceLine_4BPP; PBYTE SourceBits_4BPP, SourceLine_4BPP;
DestBits = BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.top * BltInfo->DestSurface->lDelta) + 2 * BltInfo->DestRect.left; DestBits = (PBYTE)BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.top * BltInfo->DestSurface->lDelta) + 2 * BltInfo->DestRect.left;
switch(BltInfo->SourceSurface->iBitmapFormat) switch(BltInfo->SourceSurface->iBitmapFormat)
{ {
@ -176,7 +176,7 @@ DIB_16BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_4BPP: case BMF_4BPP:
SourceBits_4BPP = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + (BltInfo->SourcePoint.x >> 1); SourceBits_4BPP = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + (BltInfo->SourcePoint.x >> 1);
for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++) for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++)
{ {
@ -198,7 +198,7 @@ DIB_16BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_8BPP: case BMF_8BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -223,7 +223,7 @@ DIB_16BPP_BitBltSrcCopy(PBLTINFO BltInfo)
{ {
if (BltInfo->DestRect.top < BltInfo->SourcePoint.y) if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)
{ {
SourceBits = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x; SourceBits = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
{ {
RtlMoveMemory(DestBits, SourceBits, 2 * (BltInfo->DestRect.right - BltInfo->DestRect.left)); RtlMoveMemory(DestBits, SourceBits, 2 * (BltInfo->DestRect.right - BltInfo->DestRect.left));
@ -233,8 +233,8 @@ DIB_16BPP_BitBltSrcCopy(PBLTINFO BltInfo)
} }
else else
{ {
SourceBits = BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x; SourceBits = (PBYTE)BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x;
DestBits = BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + 2 * BltInfo->DestRect.left; DestBits = (PBYTE)BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + 2 * BltInfo->DestRect.left;
for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--) for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--)
{ {
RtlMoveMemory(DestBits, SourceBits, 2 * (BltInfo->DestRect.right - BltInfo->DestRect.left)); RtlMoveMemory(DestBits, SourceBits, 2 * (BltInfo->DestRect.right - BltInfo->DestRect.left));
@ -247,7 +247,7 @@ DIB_16BPP_BitBltSrcCopy(PBLTINFO BltInfo)
{ {
if (BltInfo->DestRect.top < BltInfo->SourcePoint.y) if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)
{ {
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
{ {
@ -265,8 +265,8 @@ DIB_16BPP_BitBltSrcCopy(PBLTINFO BltInfo)
} }
else else
{ {
SourceLine = BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x;
DestLine = BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + 2 * BltInfo->DestRect.left; DestLine = (PBYTE)BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + 2 * BltInfo->DestRect.left;
for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--) for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--)
{ {
SourceBits = SourceLine; SourceBits = SourceLine;
@ -285,7 +285,7 @@ DIB_16BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_24BPP: case BMF_24BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 3 * BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 3 * BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -309,7 +309,7 @@ DIB_16BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_32BPP: case BMF_32BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -356,7 +356,7 @@ DIB_16BPP_BitBlt(PBLTINFO BltInfo)
((BltInfo->DestRect.right - BltInfo->DestRect.left) & 0x1); ((BltInfo->DestRect.right - BltInfo->DestRect.left) & 0x1);
SourceY = BltInfo->SourcePoint.y; SourceY = BltInfo->SourcePoint.y;
DestBits = (PULONG)( DestBits = (PULONG)(
BltInfo->DestSurface->pvScan0 + (PBYTE)BltInfo->DestSurface->pvScan0 +
(BltInfo->DestRect.left << 1) + (BltInfo->DestRect.left << 1) +
BltInfo->DestRect.top * BltInfo->DestSurface->lDelta); BltInfo->DestRect.top * BltInfo->DestSurface->lDelta);
@ -440,7 +440,7 @@ DIB_16BPP_ColorFill(SURFOBJ* DestSurface, RECTL* DestRect, ULONG color)
/* This is about 10% faster than the generic C code below */ /* This is about 10% faster than the generic C code below */
ULONG delta = DestSurface->lDelta; ULONG delta = DestSurface->lDelta;
ULONG width = (DestRect->right - DestRect->left) ; ULONG width = (DestRect->right - DestRect->left) ;
PULONG pos = (PULONG) (DestSurface->pvScan0 + DestRect->top * delta + (DestRect->left<<1)); PULONG pos = (PULONG) ((PBYTE)DestSurface->pvScan0 + DestRect->top * delta + (DestRect->left<<1));
color = (color&0xffff); /* If the color value is "abcd", put "abcdabcd" into color */ color = (color&0xffff); /* If the color value is "abcd", put "abcdabcd" into color */
color += (color<<16); color += (color<<16);
@ -608,8 +608,8 @@ BOOLEAN ScaleRectAvg16(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
PIXEL *ScanLine, *ScanLineAhead; PIXEL *ScanLine, *ScanLineAhead;
PIXEL *PrevSource = NULL; PIXEL *PrevSource = NULL;
PIXEL *PrevSourceAhead = NULL; PIXEL *PrevSourceAhead = NULL;
PIXEL *Target = (PIXEL *) (DestSurf->pvScan0 + (DestRect->top * DestSurf->lDelta) + 2 * DestRect->left); PIXEL *Target = (PIXEL *) ((PBYTE)DestSurf->pvScan0 + (DestRect->top * DestSurf->lDelta) + 2 * DestRect->left);
PIXEL *Source = (PIXEL *) (SourceSurf->pvScan0 + (SourceRect->top * SourceSurf->lDelta) + 2 * SourceRect->left); PIXEL *Source = (PIXEL *) ((PBYTE)SourceSurf->pvScan0 + (SourceRect->top * SourceSurf->lDelta) + 2 * SourceRect->left);
PSPAN ClipSpans; PSPAN ClipSpans;
UINT ClipSpansCount; UINT ClipSpansCount;
UINT SpanIndex; UINT SpanIndex;
@ -1406,7 +1406,7 @@ DIB_16BPP_TransparentBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
RoundedRight = DestRect->right - ((DestRect->right - DestRect->left) & 0x1); RoundedRight = DestRect->right - ((DestRect->right - DestRect->left) & 0x1);
SourceY = SourcePoint->y; SourceY = SourcePoint->y;
DestBits = (ULONG*)(DestSurf->pvScan0 + DestBits = (ULONG*)((PBYTE)DestSurf->pvScan0 +
(DestRect->left << 1) + (DestRect->left << 1) +
DestRect->top * DestSurf->lDelta); DestRect->top * DestSurf->lDelta);
wd = DestSurf->lDelta - ((DestRect->right - DestRect->left) << 1); wd = DestSurf->lDelta - ((DestRect->right - DestRect->left) << 1);

View file

@ -25,7 +25,7 @@
VOID VOID
DIB_1BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c) DIB_1BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
{ {
PBYTE addr = SurfObj->pvScan0 + y * SurfObj->lDelta + (x >> 3); PBYTE addr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta + (x >> 3);
if (0 == (c & 0x01)) if (0 == (c & 0x01))
*addr &= ~MASK1BPP(x); *addr &= ~MASK1BPP(x);
@ -36,7 +36,7 @@ DIB_1BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
ULONG ULONG
DIB_1BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y) DIB_1BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y)
{ {
PBYTE addr = SurfObj->pvScan0 + y * SurfObj->lDelta + (x >> 3); PBYTE addr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta + (x >> 3);
return (*addr & MASK1BPP(x) ? 1 : 0); return (*addr & MASK1BPP(x) ? 1 : 0);
} }
@ -378,7 +378,7 @@ DIB_1BPP_BitBlt(PBLTINFO BltInfo)
DestX = BltInfo->DestRect.left; DestX = BltInfo->DestRect.left;
SourceX = BltInfo->SourcePoint.x; SourceX = BltInfo->SourcePoint.x;
DestBits = (PULONG)( DestBits = (PULONG)(
BltInfo->DestSurface->pvScan0 + (PBYTE)BltInfo->DestSurface->pvScan0 +
(BltInfo->DestRect.left >> 3) + (BltInfo->DestRect.left >> 3) +
DestY * BltInfo->DestSurface->lDelta); DestY * BltInfo->DestSurface->lDelta);

View file

@ -26,7 +26,7 @@
VOID VOID
DIB_24BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c) DIB_24BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
{ {
PBYTE addr = SurfObj->pvScan0 + (y * SurfObj->lDelta) + (x << 1) + x; PBYTE addr = (PBYTE)SurfObj->pvScan0 + (y * SurfObj->lDelta) + (x << 1) + x;
*(PUSHORT)(addr) = c & 0xFFFF; *(PUSHORT)(addr) = c & 0xFFFF;
*(addr + 2) = (c >> 16) & 0xFF; *(addr + 2) = (c >> 16) & 0xFF;
} }
@ -34,14 +34,14 @@ DIB_24BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
ULONG ULONG
DIB_24BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y) DIB_24BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y)
{ {
PBYTE addr = SurfObj->pvScan0 + y * SurfObj->lDelta + (x << 1) + x; PBYTE addr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta + (x << 1) + x;
return *(PUSHORT)(addr) + (*(addr + 2) << 16); return *(PUSHORT)(addr) + (*(addr + 2) << 16);
} }
VOID VOID
DIB_24BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c) DIB_24BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
{ {
PBYTE addr = SurfObj->pvScan0 + y * SurfObj->lDelta + (x1 << 1) + x1; PBYTE addr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta + (x1 << 1) + x1;
ULONG Count = x2 - x1; ULONG Count = x2 - x1;
#ifndef _M_IX86 #ifndef _M_IX86
ULONG MultiCount; ULONG MultiCount;
@ -141,7 +141,7 @@ DIB_24BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
VOID VOID
DIB_24BPP_VLine(SURFOBJ *SurfObj, LONG x, LONG y1, LONG y2, ULONG c) DIB_24BPP_VLine(SURFOBJ *SurfObj, LONG x, LONG y1, LONG y2, ULONG c)
{ {
PBYTE addr = SurfObj->pvScan0 + y1 * SurfObj->lDelta + (x << 1) + x; PBYTE addr = (PBYTE)SurfObj->pvScan0 + y1 * SurfObj->lDelta + (x << 1) + x;
LONG lDelta = SurfObj->lDelta; LONG lDelta = SurfObj->lDelta;
c &= 0xFFFFFF; c &= 0xFFFFFF;
@ -161,7 +161,7 @@ DIB_24BPP_BitBltSrcCopy(PBLTINFO BltInfo)
PBYTE SourceBits_4BPP, SourceLine_4BPP; PBYTE SourceBits_4BPP, SourceLine_4BPP;
PWORD SourceBits_16BPP, SourceLine_16BPP; PWORD SourceBits_16BPP, SourceLine_16BPP;
DestBits = BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.top * BltInfo->DestSurface->lDelta) + BltInfo->DestRect.left * 3; DestBits = (PBYTE)BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.top * BltInfo->DestSurface->lDelta) + BltInfo->DestRect.left * 3;
switch(BltInfo->SourceSurface->iBitmapFormat) switch(BltInfo->SourceSurface->iBitmapFormat)
{ {
@ -187,7 +187,7 @@ DIB_24BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_4BPP: case BMF_4BPP:
SourceBits_4BPP = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + (BltInfo->SourcePoint.x >> 1); SourceBits_4BPP = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + (BltInfo->SourcePoint.x >> 1);
for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++) for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++)
{ {
@ -213,7 +213,7 @@ DIB_24BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_8BPP: case BMF_8BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -236,7 +236,7 @@ DIB_24BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_16BPP: case BMF_16BPP:
SourceBits_16BPP = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x; SourceBits_16BPP = (PWORD)((PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x);
for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++) for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++)
{ {
@ -262,7 +262,7 @@ DIB_24BPP_BitBltSrcCopy(PBLTINFO BltInfo)
{ {
if (BltInfo->DestRect.top < BltInfo->SourcePoint.y) if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)
{ {
SourceBits = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 3 * BltInfo->SourcePoint.x; SourceBits = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 3 * BltInfo->SourcePoint.x;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
{ {
RtlMoveMemory(DestBits, SourceBits, 3 * (BltInfo->DestRect.right - BltInfo->DestRect.left)); RtlMoveMemory(DestBits, SourceBits, 3 * (BltInfo->DestRect.right - BltInfo->DestRect.left));
@ -272,8 +272,8 @@ DIB_24BPP_BitBltSrcCopy(PBLTINFO BltInfo)
} }
else else
{ {
SourceBits = BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + 3 * BltInfo->SourcePoint.x; SourceBits = (PBYTE)BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + 3 * BltInfo->SourcePoint.x;
DestBits = BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + 3 * BltInfo->DestRect.left; DestBits = (PBYTE)BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + 3 * BltInfo->DestRect.left;
for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--) for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--)
{ {
RtlMoveMemory(DestBits, SourceBits, 3 * (BltInfo->DestRect.right - BltInfo->DestRect.left)); RtlMoveMemory(DestBits, SourceBits, 3 * (BltInfo->DestRect.right - BltInfo->DestRect.left));
@ -291,7 +291,7 @@ DIB_24BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_32BPP: case BMF_32BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -337,7 +337,7 @@ DIB_24BPP_BitBlt(PBLTINFO BltInfo)
SourceY = BltInfo->SourcePoint.y; SourceY = BltInfo->SourcePoint.y;
DestBits = (PBYTE)( DestBits = (PBYTE)(
BltInfo->DestSurface->pvScan0 + (PBYTE)BltInfo->DestSurface->pvScan0 +
(BltInfo->DestRect.left << 1) + BltInfo->DestRect.left + (BltInfo->DestRect.left << 1) + BltInfo->DestRect.left +
BltInfo->DestRect.top * BltInfo->DestSurface->lDelta); BltInfo->DestRect.top * BltInfo->DestSurface->lDelta);
@ -397,7 +397,7 @@ DIB_24BPP_ColorFill(SURFOBJ* DestSurface, RECTL* DestRect, ULONG color)
ULONG DestY; ULONG DestY;
#ifdef _M_IX86 #ifdef _M_IX86
PBYTE xaddr = DestSurface->pvScan0 + DestRect->top * DestSurface->lDelta + (DestRect->left << 1) + DestRect->left; PBYTE xaddr = (PBYTE)DestSurface->pvScan0 + DestRect->top * DestSurface->lDelta + (DestRect->left << 1) + DestRect->left;
PBYTE addr; PBYTE addr;
ULONG Count; ULONG Count;
ULONG xCount=DestRect->right - DestRect->left; ULONG xCount=DestRect->right - DestRect->left;
@ -1305,7 +1305,7 @@ DIB_24BPP_TransparentBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
BYTE *DestBits; BYTE *DestBits;
SourceY = SourcePoint->y; SourceY = SourcePoint->y;
DestBits = (BYTE*)(DestSurf->pvScan0 + DestBits = (BYTE*)((PBYTE)DestSurf->pvScan0 +
(DestRect->left << 2) + (DestRect->left << 2) +
DestRect->top * DestSurf->lDelta); DestRect->top * DestSurf->lDelta);
wd = DestSurf->lDelta - ((DestRect->right - DestRect->left) << 2); wd = DestSurf->lDelta - ((DestRect->right - DestRect->left) << 2);

View file

@ -26,7 +26,7 @@
VOID VOID
DIB_32BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c) DIB_32BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
{ {
PBYTE byteaddr = SurfObj->pvScan0 + y * SurfObj->lDelta; PBYTE byteaddr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta;
PDWORD addr = (PDWORD)byteaddr + x; PDWORD addr = (PDWORD)byteaddr + x;
*addr = c; *addr = c;
@ -35,7 +35,7 @@ DIB_32BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
ULONG ULONG
DIB_32BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y) DIB_32BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y)
{ {
PBYTE byteaddr = SurfObj->pvScan0 + y * SurfObj->lDelta; PBYTE byteaddr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta;
PDWORD addr = (PDWORD)byteaddr + x; PDWORD addr = (PDWORD)byteaddr + x;
return (ULONG)(*addr); return (ULONG)(*addr);
@ -47,7 +47,7 @@ VOID
DIB_32BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c) DIB_32BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
{ {
LONG cx = (x2 - x1) ; LONG cx = (x2 - x1) ;
PBYTE byteaddr = SurfObj->pvScan0 + y * SurfObj->lDelta; PBYTE byteaddr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta;
PDWORD addr = (PDWORD)byteaddr + x1; PDWORD addr = (PDWORD)byteaddr + x1;
__asm__ __volatile__ ( __asm__ __volatile__ (
@ -95,7 +95,7 @@ DIB_32BPP_VLine(SURFOBJ *SurfObj, LONG x, LONG y1, LONG y2, ULONG c)
{ {
PBYTE byteaddr = SurfObj->pvScan0 + y1 * SurfObj->lDelta; PBYTE byteaddr = (PBYTE)SurfObj->pvScan0 + y1 * SurfObj->lDelta;
PDWORD addr = (PDWORD)byteaddr + x; PDWORD addr = (PDWORD)byteaddr + x;
LONG lDelta = SurfObj->lDelta >> 2; // >> 2 == / sizeof(DWORD) LONG lDelta = SurfObj->lDelta >> 2; // >> 2 == / sizeof(DWORD)
@ -116,7 +116,7 @@ DIB_32BPP_BitBltSrcCopy(PBLTINFO BltInfo)
PBYTE SourceBits_4BPP, SourceLine_4BPP; PBYTE SourceBits_4BPP, SourceLine_4BPP;
PDWORD Source32, Dest32; PDWORD Source32, Dest32;
DestBits = BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.top * BltInfo->DestSurface->lDelta) + 4 * BltInfo->DestRect.left; DestBits = (PBYTE)BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.top * BltInfo->DestSurface->lDelta) + 4 * BltInfo->DestRect.left;
switch(BltInfo->SourceSurface->iBitmapFormat) switch(BltInfo->SourceSurface->iBitmapFormat)
{ {
@ -143,7 +143,7 @@ DIB_32BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_4BPP: case BMF_4BPP:
SourceBits_4BPP = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + (BltInfo->SourcePoint.x >> 1); SourceBits_4BPP = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + (BltInfo->SourcePoint.x >> 1);
for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++) for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++)
{ {
@ -165,7 +165,7 @@ DIB_32BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_8BPP: case BMF_8BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -187,7 +187,7 @@ DIB_32BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_16BPP: case BMF_16BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -209,7 +209,7 @@ DIB_32BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_24BPP: case BMF_24BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 3 * BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 3 * BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -237,7 +237,7 @@ DIB_32BPP_BitBltSrcCopy(PBLTINFO BltInfo)
{ {
if (BltInfo->DestRect.top < BltInfo->SourcePoint.y) if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)
{ {
SourceBits = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x; SourceBits = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
{ {
RtlMoveMemory(DestBits, SourceBits, 4 * (BltInfo->DestRect.right - BltInfo->DestRect.left)); RtlMoveMemory(DestBits, SourceBits, 4 * (BltInfo->DestRect.right - BltInfo->DestRect.left));
@ -247,8 +247,8 @@ DIB_32BPP_BitBltSrcCopy(PBLTINFO BltInfo)
} }
else else
{ {
SourceBits = BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x; SourceBits = (PBYTE)BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x;
DestBits = BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + 4 * BltInfo->DestRect.left; DestBits = (PBYTE)BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + 4 * BltInfo->DestRect.left;
for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--) for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--)
{ {
RtlMoveMemory(DestBits, SourceBits, 4 * (BltInfo->DestRect.right - BltInfo->DestRect.left)); RtlMoveMemory(DestBits, SourceBits, 4 * (BltInfo->DestRect.right - BltInfo->DestRect.left));
@ -261,7 +261,7 @@ DIB_32BPP_BitBltSrcCopy(PBLTINFO BltInfo)
{ {
if (BltInfo->DestRect.top < BltInfo->SourcePoint.y) if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)
{ {
SourceBits = (BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x); SourceBits = ((PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x);
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
{ {
if (BltInfo->DestRect.left < BltInfo->SourcePoint.x) if (BltInfo->DestRect.left < BltInfo->SourcePoint.x)
@ -288,8 +288,8 @@ DIB_32BPP_BitBltSrcCopy(PBLTINFO BltInfo)
} }
else else
{ {
SourceBits = BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x; SourceBits = (PBYTE)BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x;
DestBits = BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + 4 * BltInfo->DestRect.left; DestBits = (PBYTE)BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + 4 * BltInfo->DestRect.left;
for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--) for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--)
{ {
if (BltInfo->DestRect.left < BltInfo->SourcePoint.x) if (BltInfo->DestRect.left < BltInfo->SourcePoint.x)
@ -363,7 +363,7 @@ DIB_32BPP_BitBlt(PBLTINFO BltInfo)
UsesPattern = ROP4_USES_PATTERN(BltInfo->Rop4); UsesPattern = ROP4_USES_PATTERN(BltInfo->Rop4);
SourceY = BltInfo->SourcePoint.y; SourceY = BltInfo->SourcePoint.y;
DestBits = (PULONG)(BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.left << 2) + DestBits = (PULONG)((PBYTE)BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.left << 2) +
BltInfo->DestRect.top * BltInfo->DestSurface->lDelta); BltInfo->DestRect.top * BltInfo->DestSurface->lDelta);
Delta = BltInfo->DestSurface->lDelta - ((BltInfo->DestRect.right - BltInfo->DestRect.left) << 2); Delta = BltInfo->DestSurface->lDelta - ((BltInfo->DestRect.right - BltInfo->DestRect.left) << 2);
@ -499,7 +499,7 @@ DIB_32DstInvert(PBLTINFO BltInfo)
ULONG right = BltInfo->DestRect.right; ULONG right = BltInfo->DestRect.right;
ULONG delta = BltInfo->DestSurface->lDelta - ((BltInfo->DestRect.right - BltInfo->DestRect.left) <<2) ; ULONG delta = BltInfo->DestSurface->lDelta - ((BltInfo->DestRect.right - BltInfo->DestRect.left) <<2) ;
DestBits = (PULONG)(BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.left << 2) + DestBits = (PULONG)((PBYTE)BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.left << 2) +
BltInfo->DestRect.top * BltInfo->DestSurface->lDelta); BltInfo->DestRect.top * BltInfo->DestSurface->lDelta);
for (DestY = BltInfo->DestRect.top; DestY < bottom; DestY++) for (DestY = BltInfo->DestRect.top; DestY < bottom; DestY++)
@ -539,7 +539,7 @@ DIB32_SrcErase(PBLTINFO BltInfo)
ULONG right = BltInfo->DestRect.right; ULONG right = BltInfo->DestRect.right;
ULONG delta = BltInfo->DestSurface->lDelta - ((BltInfo->DestRect.right - BltInfo->DestRect.left) <<2) ; ULONG delta = BltInfo->DestSurface->lDelta - ((BltInfo->DestRect.right - BltInfo->DestRect.left) <<2) ;
DestBits = (PULONG)(BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.left << 2) + DestBits = (PULONG)((PBYTE)BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.left << 2) +
BltInfo->DestRect.top * BltInfo->DestSurface->lDelta); BltInfo->DestRect.top * BltInfo->DestSurface->lDelta);
SourceY = BltInfo->SourcePoint.y; SourceY = BltInfo->SourcePoint.y;
@ -590,7 +590,7 @@ DIB32_NotSrcErase(PBLTINFO BltInfo)
ULONG right = BltInfo->DestRect.right; ULONG right = BltInfo->DestRect.right;
ULONG delta = BltInfo->DestSurface->lDelta - ((BltInfo->DestRect.right - BltInfo->DestRect.left) <<2); ULONG delta = BltInfo->DestSurface->lDelta - ((BltInfo->DestRect.right - BltInfo->DestRect.left) <<2);
DestBits = (PULONG)(BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.left << 2) + DestBits = (PULONG)((PBYTE)BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.left << 2) +
BltInfo->DestRect.top * BltInfo->DestSurface->lDelta); BltInfo->DestRect.top * BltInfo->DestSurface->lDelta);
SourceY = BltInfo->SourcePoint.y; SourceY = BltInfo->SourcePoint.y;
@ -640,7 +640,7 @@ DIB32_SrcPaint(PBLTINFO BltInfo)
ULONG right = BltInfo->DestRect.right; ULONG right = BltInfo->DestRect.right;
ULONG delta = BltInfo->DestSurface->lDelta - ((BltInfo->DestRect.right - BltInfo->DestRect.left) <<2) ; ULONG delta = BltInfo->DestSurface->lDelta - ((BltInfo->DestRect.right - BltInfo->DestRect.left) <<2) ;
DestBits = (PULONG)(BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.left << 2) + DestBits = (PULONG)((PBYTE)BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.left << 2) +
BltInfo->DestRect.top * BltInfo->DestSurface->lDelta); BltInfo->DestRect.top * BltInfo->DestSurface->lDelta);
SourceY = BltInfo->SourcePoint.y; SourceY = BltInfo->SourcePoint.y;
@ -672,7 +672,7 @@ DIB32_SrcPaint(PBLTINFO BltInfo)
ULONG right = BltInfo->DestRect.right; ULONG right = BltInfo->DestRect.right;
ULONG delta = BltInfo->DestSurface->lDelta - ((BltInfo->DestRect.right - BltInfo->DestRect.left) <<2) ; ULONG delta = BltInfo->DestSurface->lDelta - ((BltInfo->DestRect.right - BltInfo->DestRect.left) <<2) ;
DestBits = (PULONG)(BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.left << 2) + DestBits = (PULONG)((PBYTE)BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.left << 2) +
BltInfo->DestRect.top * BltInfo->DestSurface->lDelta); BltInfo->DestRect.top * BltInfo->DestSurface->lDelta);
SourceY = BltInfo->SourcePoint.y; SourceY = BltInfo->SourcePoint.y;
@ -814,8 +814,8 @@ BOOLEAN ScaleRectAvg32(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
PIXEL *ScanLine, *ScanLineAhead; PIXEL *ScanLine, *ScanLineAhead;
PIXEL *PrevSource = NULL; PIXEL *PrevSource = NULL;
PIXEL *PrevSourceAhead = NULL; PIXEL *PrevSourceAhead = NULL;
PIXEL *Target = (PIXEL *) (DestSurf->pvScan0 + (DestRect->top * DestSurf->lDelta) + 4 * DestRect->left); PIXEL *Target = (PIXEL *) ((PBYTE)DestSurf->pvScan0 + (DestRect->top * DestSurf->lDelta) + 4 * DestRect->left);
PIXEL *Source = (PIXEL *) (SourceSurf->pvScan0 + (SourceRect->top * SourceSurf->lDelta) + 4 * SourceRect->left); PIXEL *Source = (PIXEL *) ((PBYTE)SourceSurf->pvScan0 + (SourceRect->top * SourceSurf->lDelta) + 4 * SourceRect->left);
PSPAN ClipSpans; PSPAN ClipSpans;
UINT ClipSpansCount; UINT ClipSpansCount;
UINT SpanIndex; UINT SpanIndex;
@ -1607,7 +1607,7 @@ DIB_32BPP_TransparentBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
ULONG *DestBits; ULONG *DestBits;
SourceY = SourcePoint->y; SourceY = SourcePoint->y;
DestBits = (ULONG*)(DestSurf->pvScan0 + DestBits = (ULONG*)((PBYTE)DestSurf->pvScan0 +
(DestRect->left << 2) + (DestRect->left << 2) +
DestRect->top * DestSurf->lDelta); DestRect->top * DestSurf->lDelta);
wd = DestSurf->lDelta - ((DestRect->right - DestRect->left) << 2); wd = DestSurf->lDelta - ((DestRect->right - DestRect->left) << 2);

View file

@ -26,21 +26,21 @@
VOID VOID
DIB_4BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c) DIB_4BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
{ {
PBYTE addr = SurfObj->pvScan0 + (x>>1) + y * SurfObj->lDelta; PBYTE addr = (PBYTE)SurfObj->pvScan0 + (x>>1) + y * SurfObj->lDelta;
*addr = (*addr & notmask[x&1]) | (c << ((1-(x&1))<<2)); *addr = (*addr & notmask[x&1]) | (c << ((1-(x&1))<<2));
} }
ULONG ULONG
DIB_4BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y) DIB_4BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y)
{ {
PBYTE addr = SurfObj->pvScan0 + (x>>1) + y * SurfObj->lDelta; PBYTE addr = (PBYTE)SurfObj->pvScan0 + (x>>1) + y * SurfObj->lDelta;
return (*addr >> ((1-(x&1))<<2)) & 0x0f; return (*addr >> ((1-(x&1))<<2)) & 0x0f;
} }
VOID VOID
DIB_4BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c) DIB_4BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
{ {
PBYTE addr = SurfObj->pvScan0 + (x1>>1) + y * SurfObj->lDelta; PBYTE addr = (PBYTE)SurfObj->pvScan0 + (x1>>1) + y * SurfObj->lDelta;
LONG cx = x1; LONG cx = x1;
while(cx < x2) { while(cx < x2) {
@ -72,7 +72,7 @@ DIB_4BPP_BitBltSrcCopy(PBLTINFO BltInfo)
PBYTE DestBits, DestLine, SourceBits_8BPP, SourceLine_8BPP; PBYTE DestBits, DestLine, SourceBits_8BPP, SourceLine_8BPP;
PBYTE SourceBits, SourceLine; PBYTE SourceBits, SourceLine;
DestBits = BltInfo->DestSurface->pvScan0 + DestBits = (PBYTE)BltInfo->DestSurface->pvScan0 +
(BltInfo->DestRect.left >> 1) + (BltInfo->DestRect.left >> 1) +
BltInfo->DestRect.top * BltInfo->DestSurface->lDelta; BltInfo->DestRect.top * BltInfo->DestSurface->lDelta;
@ -123,7 +123,7 @@ DIB_4BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_8BPP: case BMF_8BPP:
SourceBits_8BPP = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x; SourceBits_8BPP = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x;
for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++) for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++)
{ {
@ -145,7 +145,7 @@ DIB_4BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_16BPP: case BMF_16BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -169,7 +169,7 @@ DIB_4BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_24BPP: case BMF_24BPP:
SourceBits_24BPP = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x * 3; SourceBits_24BPP = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x * 3;
for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++) for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++)
{ {
@ -194,7 +194,7 @@ DIB_4BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_32BPP: case BMF_32BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -278,7 +278,7 @@ DIB_4BPP_BitBlt(PBLTINFO BltInfo)
for (DestY = BltInfo->DestRect.top; DestY < BltInfo->DestRect.bottom; DestY++) for (DestY = BltInfo->DestRect.top; DestY < BltInfo->DestRect.bottom; DestY++)
{ {
DestBits = (PULONG)( DestBits = (PULONG)(
BltInfo->DestSurface->pvScan0 + (PBYTE)BltInfo->DestSurface->pvScan0 +
(BltInfo->DestRect.left >> 1) + (BltInfo->DestRect.left >> 1) +
DestY * BltInfo->DestSurface->lDelta); DestY * BltInfo->DestSurface->lDelta);
SourceX = BltInfo->SourcePoint.x; SourceX = BltInfo->SourcePoint.x;

View file

@ -26,7 +26,7 @@
VOID VOID
DIB_8BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c) DIB_8BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
{ {
PBYTE byteaddr = SurfObj->pvScan0 + y * SurfObj->lDelta + x; PBYTE byteaddr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta + x;
*byteaddr = c; *byteaddr = c;
} }
@ -34,7 +34,7 @@ DIB_8BPP_PutPixel(SURFOBJ *SurfObj, LONG x, LONG y, ULONG c)
ULONG ULONG
DIB_8BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y) DIB_8BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y)
{ {
PBYTE byteaddr = SurfObj->pvScan0 + y * SurfObj->lDelta + x; PBYTE byteaddr = (PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta + x;
return (ULONG)(*byteaddr); return (ULONG)(*byteaddr);
} }
@ -42,13 +42,13 @@ DIB_8BPP_GetPixel(SURFOBJ *SurfObj, LONG x, LONG y)
VOID VOID
DIB_8BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c) DIB_8BPP_HLine(SURFOBJ *SurfObj, LONG x1, LONG x2, LONG y, ULONG c)
{ {
memset(SurfObj->pvScan0 + y * SurfObj->lDelta + x1, (BYTE) c, x2 - x1); memset((PBYTE)SurfObj->pvScan0 + y * SurfObj->lDelta + x1, (BYTE) c, x2 - x1);
} }
VOID VOID
DIB_8BPP_VLine(SURFOBJ *SurfObj, LONG x, LONG y1, LONG y2, ULONG c) DIB_8BPP_VLine(SURFOBJ *SurfObj, LONG x, LONG y1, LONG y2, ULONG c)
{ {
PBYTE byteaddr = SurfObj->pvScan0 + y1 * SurfObj->lDelta; PBYTE byteaddr = (PBYTE)SurfObj->pvScan0 + y1 * SurfObj->lDelta;
PBYTE addr = byteaddr + x; PBYTE addr = byteaddr + x;
LONG lDelta = SurfObj->lDelta; LONG lDelta = SurfObj->lDelta;
@ -67,7 +67,7 @@ DIB_8BPP_BitBltSrcCopy(PBLTINFO BltInfo)
PBYTE SourceBits, DestBits, SourceLine, DestLine; PBYTE SourceBits, DestBits, SourceLine, DestLine;
PBYTE SourceBits_4BPP, SourceLine_4BPP; PBYTE SourceBits_4BPP, SourceLine_4BPP;
DestBits = BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.top * BltInfo->DestSurface->lDelta) + BltInfo->DestRect.left; DestBits = (PBYTE)BltInfo->DestSurface->pvScan0 + (BltInfo->DestRect.top * BltInfo->DestSurface->lDelta) + BltInfo->DestRect.left;
switch(BltInfo->SourceSurface->iBitmapFormat) switch(BltInfo->SourceSurface->iBitmapFormat)
{ {
@ -93,7 +93,7 @@ DIB_8BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_4BPP: case BMF_4BPP:
SourceBits_4BPP = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + (BltInfo->SourcePoint.x >> 1); SourceBits_4BPP = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + (BltInfo->SourcePoint.x >> 1);
for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++) for (j=BltInfo->DestRect.top; j<BltInfo->DestRect.bottom; j++)
{ {
@ -119,7 +119,7 @@ DIB_8BPP_BitBltSrcCopy(PBLTINFO BltInfo)
{ {
if (BltInfo->DestRect.top < BltInfo->SourcePoint.y) if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)
{ {
SourceBits = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x; SourceBits = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
{ {
RtlMoveMemory(DestBits, SourceBits, BltInfo->DestRect.right - BltInfo->DestRect.left); RtlMoveMemory(DestBits, SourceBits, BltInfo->DestRect.right - BltInfo->DestRect.left);
@ -129,8 +129,8 @@ DIB_8BPP_BitBltSrcCopy(PBLTINFO BltInfo)
} }
else else
{ {
SourceBits = BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x; SourceBits = (PBYTE)BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x;
DestBits = BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + BltInfo->DestRect.left; DestBits = (PBYTE)BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + BltInfo->DestRect.left;
for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--) for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--)
{ {
RtlMoveMemory(DestBits, SourceBits, BltInfo->DestRect.right - BltInfo->DestRect.left); RtlMoveMemory(DestBits, SourceBits, BltInfo->DestRect.right - BltInfo->DestRect.left);
@ -143,7 +143,7 @@ DIB_8BPP_BitBltSrcCopy(PBLTINFO BltInfo)
{ {
if (BltInfo->DestRect.top < BltInfo->SourcePoint.y) if (BltInfo->DestRect.top < BltInfo->SourcePoint.y)
{ {
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
{ {
@ -159,8 +159,8 @@ DIB_8BPP_BitBltSrcCopy(PBLTINFO BltInfo)
} }
else else
{ {
SourceLine = BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + ((BltInfo->SourcePoint.y + BltInfo->DestRect.bottom - BltInfo->DestRect.top - 1) * BltInfo->SourceSurface->lDelta) + BltInfo->SourcePoint.x;
DestLine = BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + BltInfo->DestRect.left; DestLine = (PBYTE)BltInfo->DestSurface->pvScan0 + ((BltInfo->DestRect.bottom - 1) * BltInfo->DestSurface->lDelta) + BltInfo->DestRect.left;
for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--) for (j = BltInfo->DestRect.bottom - 1; BltInfo->DestRect.top <= j; j--)
{ {
SourceBits = SourceLine; SourceBits = SourceLine;
@ -177,7 +177,7 @@ DIB_8BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_16BPP: case BMF_16BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 2 * BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -199,7 +199,7 @@ DIB_8BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_24BPP: case BMF_24BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 3 * BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 3 * BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -223,7 +223,7 @@ DIB_8BPP_BitBltSrcCopy(PBLTINFO BltInfo)
break; break;
case BMF_32BPP: case BMF_32BPP:
SourceLine = BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x; SourceLine = (PBYTE)BltInfo->SourceSurface->pvScan0 + (BltInfo->SourcePoint.y * BltInfo->SourceSurface->lDelta) + 4 * BltInfo->SourcePoint.x;
DestLine = DestBits; DestLine = DestBits;
for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++) for (j = BltInfo->DestRect.top; j < BltInfo->DestRect.bottom; j++)
@ -291,7 +291,7 @@ DIB_8BPP_BitBlt(PBLTINFO BltInfo)
{ {
SourceX = BltInfo->SourcePoint.x; SourceX = BltInfo->SourcePoint.x;
DestBits = (PULONG)( DestBits = (PULONG)(
BltInfo->DestSurface->pvScan0 + (PBYTE)BltInfo->DestSurface->pvScan0 +
BltInfo->DestRect.left + BltInfo->DestRect.left +
DestY * BltInfo->DestSurface->lDelta); DestY * BltInfo->DestSurface->lDelta);
@ -461,8 +461,8 @@ BOOLEAN ScaleRectAvg8(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
PIXEL *ScanLine, *ScanLineAhead; PIXEL *ScanLine, *ScanLineAhead;
PIXEL *PrevSource = NULL; PIXEL *PrevSource = NULL;
PIXEL *PrevSourceAhead = NULL; PIXEL *PrevSourceAhead = NULL;
PIXEL *Target = (PIXEL *) (DestSurf->pvScan0 + (DestRect->top * DestSurf->lDelta) + DestRect->left); PIXEL *Target = (PIXEL *) ((PBYTE)DestSurf->pvScan0 + (DestRect->top * DestSurf->lDelta) + DestRect->left);
PIXEL *Source = (PIXEL *) (SourceSurf->pvScan0 + (SourceRect->top * SourceSurf->lDelta) + SourceRect->left); PIXEL *Source = (PIXEL *) ((PBYTE)SourceSurf->pvScan0 + (SourceRect->top * SourceSurf->lDelta) + SourceRect->left);
PSPAN ClipSpans; PSPAN ClipSpans;
UINT ClipSpansCount; UINT ClipSpansCount;
UINT SpanIndex; UINT SpanIndex;
@ -1252,13 +1252,13 @@ DIB_8BPP_TransparentBlt(SURFOBJ *DestSurf, SURFOBJ *SourceSurf,
RoundedRight = DestRect->right - ((DestRect->right - DestRect->left) & 0x3); RoundedRight = DestRect->right - ((DestRect->right - DestRect->left) & 0x3);
SourceY = SourcePoint->y; SourceY = SourcePoint->y;
DestBits = (ULONG*)(DestSurf->pvScan0 + DestRect->left + DestBits = (ULONG*)((PBYTE)DestSurf->pvScan0 + DestRect->left +
(DestRect->top * DestSurf->lDelta)); (DestRect->top * DestSurf->lDelta));
wd = DestSurf->lDelta - (DestRect->right - DestRect->left); wd = DestSurf->lDelta - (DestRect->right - DestRect->left);
for(Y = DestRect->top; Y < DestRect->bottom; Y++) for(Y = DestRect->top; Y < DestRect->bottom; Y++)
{ {
DestBits = (ULONG*)(DestSurf->pvScan0 + DestRect->left + DestBits = (ULONG*)((PBYTE)DestSurf->pvScan0 + DestRect->left +
(Y * DestSurf->lDelta)); (Y * DestSurf->lDelta));
SourceX = SourcePoint->x; SourceX = SourcePoint->x;
for (X = DestRect->left; X < RoundedRight; X += 4, DestBits++) for (X = DestRect->left; X < RoundedRight; X += 4, DestBits++)

View file

@ -123,7 +123,7 @@ BltMask(SURFOBJ* Dest,
else else
PatternBitmap = NULL; PatternBitmap = NULL;
tMask = Mask->pvScan0 + SourcePoint->y * Mask->lDelta + (SourcePoint->x >> 3); tMask = (PBYTE)Mask->pvScan0 + SourcePoint->y * Mask->lDelta + (SourcePoint->x >> 3);
for (j = 0; j < dy; j++) for (j = 0; j < dy; j++)
{ {
lMask = tMask; lMask = tMask;
@ -919,7 +919,7 @@ AlphaBltMask(SURFOBJ* Dest,
g = (int)GetGValue(BrushColor); g = (int)GetGValue(BrushColor);
b = (int)GetBValue(BrushColor); b = (int)GetBValue(BrushColor);
tMask = Mask->pvScan0 + (SourcePoint->y * Mask->lDelta) + SourcePoint->x; tMask = (PBYTE)Mask->pvScan0 + (SourcePoint->y * Mask->lDelta) + SourcePoint->x;
for (j = 0; j < dy; j++) for (j = 0; j < dy; j++)
{ {
lMask = tMask; lMask = tMask;

View file

@ -58,17 +58,17 @@ LdrGetProcedureAddress (IN PVOID BaseAddress,
return STATUS_INVALID_PARAMETER; return STATUS_INVALID_PARAMETER;
} }
AddressPtr = (PULONG)((ULONG)BaseAddress + (ULONG)ExportDir->AddressOfFunctions); AddressPtr = (PULONG)((ULONG_PTR)BaseAddress + (ULONG)ExportDir->AddressOfFunctions);
if (Name && Name->Length) if (Name && Name->Length)
{ {
/* by name */ /* by name */
OrdinalPtr = (PUSHORT)((ULONG)BaseAddress + (ULONG)ExportDir->AddressOfNameOrdinals); OrdinalPtr = (PUSHORT)((ULONG_PTR)BaseAddress + (ULONG)ExportDir->AddressOfNameOrdinals);
NamePtr = (PULONG)((ULONG)BaseAddress + (ULONG)ExportDir->AddressOfNames); NamePtr = (PULONG)((ULONG_PTR)BaseAddress + (ULONG)ExportDir->AddressOfNames);
for( i = 0; i < ExportDir->NumberOfNames; i++, NamePtr++, OrdinalPtr++) for( i = 0; i < ExportDir->NumberOfNames; i++, NamePtr++, OrdinalPtr++)
{ {
if (!_strnicmp(Name->Buffer, (char*)(BaseAddress + *NamePtr), Name->Length)) if (!_strnicmp(Name->Buffer, (char*)((ULONG_PTR)BaseAddress + *NamePtr), Name->Length))
{ {
*ProcedureAddress = (PVOID)((ULONG)BaseAddress + (ULONG)AddressPtr[*OrdinalPtr]); *ProcedureAddress = (PVOID)((ULONG_PTR)BaseAddress + (ULONG)AddressPtr[*OrdinalPtr]);
return STATUS_SUCCESS; return STATUS_SUCCESS;
} }
} }

View file

@ -968,7 +968,7 @@ IntBuildMenuItemList(PMENU_OBJECT MenuObject, PVOID Buffer, ULONG nMax)
SetLastNtError(Status); SetLastNtError(Status);
return 0; return 0;
} }
Buf += sizeof(ROSMENUITEMINFO); Buf = (PVOID)((ULONG_PTR)Buf + sizeof(ROSMENUITEMINFO));
if (0 != CurItem->Text.Length if (0 != CurItem->Text.Length
&& (nMax >= CurItem->Text.Length + sizeof(WCHAR))) && (nMax >= CurItem->Text.Length + sizeof(WCHAR)))