https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3526ffc094277e03d1a01435036bfb089806b88d
commit 3526ffc094277e03d1a01435036bfb089806b88d Author: Katayama Hirofumi MZ <[email protected]> AuthorDate: Tue Mar 28 08:12:38 2023 +0900 Commit: GitHub <[email protected]> CommitDate: Tue Mar 28 08:12:38 2023 +0900 [BLUE] Optimize ScrIoControl for speed (#5185) Optimize IOCTL_CONSOLE_FILL_OUTPUT_ATTRIBUTE and IOCTL_CONSOLE_FILL_OUTPUT_CHARACTER for speed by using cache. CORE-18838 --- drivers/setup/blue/blue.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/setup/blue/blue.c b/drivers/setup/blue/blue.c index 81011fe10cc..06e498d8208 100644 --- a/drivers/setup/blue/blue.c +++ b/drivers/setup/blue/blue.c @@ -1073,6 +1073,8 @@ ScrIoControl( if (DeviceExtension->Enabled && DeviceExtension->VideoMemory) { + UCHAR attr = Buf->wAttribute; + vidmem = DeviceExtension->VideoMemory; offset = (Buf->dwCoord.X + Buf->dwCoord.Y * DeviceExtension->Columns) * 2 + 1; @@ -1082,7 +1084,7 @@ ScrIoControl( for (dwCount = 0; dwCount < nMaxLength; dwCount++) { - vidmem[offset + (dwCount * 2)] = (char)Buf->wAttribute; + vidmem[offset + (dwCount * 2)] = attr; } Buf->dwTransfered = dwCount; } @@ -1271,6 +1273,8 @@ ScrIoControl( if (DeviceExtension->Enabled && DeviceExtension->VideoMemory) { + UCHAR ch = Buf->cCharacter; + vidmem = DeviceExtension->VideoMemory; offset = (Buf->dwCoord.X + Buf->dwCoord.Y * DeviceExtension->Columns) * 2; @@ -1280,7 +1284,7 @@ ScrIoControl( for (dwCount = 0; dwCount < nMaxLength; dwCount++) { - vidmem[offset + (dwCount * 2)] = (char)Buf->cCharacter; + vidmem[offset + (dwCount * 2)] = ch; } Buf->dwTransfered = dwCount; }
