Skip to content
This repository was archived by the owner on Oct 12, 2022. It is now read-only.

Commit c9c8df7

Browse files
Merge pull request #2400 from n8sh/reduce-windows.d
Reduce uses of windows.d b/c it's slow (see PR #2336)
2 parents a60cf76 + 12f64a0 commit c9c8df7

24 files changed

+75
-31
lines changed

src/core/internal/abort.d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ void abort(scope string msg, scope string filename = __FILE__, size_t line = __L
1919
}
2020
else version (Windows)
2121
{
22-
import core.sys.windows.windows: GetStdHandle, STD_ERROR_HANDLE, WriteFile, INVALID_HANDLE_VALUE;
22+
import core.sys.windows.winbase : GetStdHandle, STD_ERROR_HANDLE, WriteFile, INVALID_HANDLE_VALUE;
2323
auto h = (() @trusted => GetStdHandle(STD_ERROR_HANDLE))();
2424
if (h == INVALID_HANDLE_VALUE)
2525
// attempt best we can to print the message

src/core/runtime.d

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,8 @@ struct Runtime
227227
import core.stdc.stdlib : free, malloc;
228228
version (Windows)
229229
{
230-
import core.sys.windows.windows;
230+
import core.sys.windows.winnls : CP_UTF8, MultiByteToWideChar;
231+
import core.sys.windows.winnt : WCHAR;
231232

232233
if (name.length == 0) return null;
233234
// Load a DLL at runtime
@@ -990,7 +991,7 @@ Throwable.TraceInfo defaultTraceHandler( void* ptr = null )
990991
{
991992
static enum FIRSTFRAME = 0;
992993
}
993-
import core.sys.windows.windows : CONTEXT;
994+
import core.sys.windows.winnt : CONTEXT;
994995
auto s = new StackTrace(FIRSTFRAME, cast(CONTEXT*)ptr);
995996
return s;
996997
}

src/core/sync/condition.d

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,12 @@ public import core.time;
2323
version (Windows)
2424
{
2525
private import core.sync.semaphore;
26-
private import core.sys.windows.windows;
26+
private import core.sys.windows.basetsd /+: HANDLE+/;
27+
private import core.sys.windows.winbase /+: CloseHandle, CreateSemaphoreA, CRITICAL_SECTION,
28+
DeleteCriticalSection, EnterCriticalSection, INFINITE, InitializeCriticalSection,
29+
LeaveCriticalSection, ReleaseSemaphore, WAIT_OBJECT_0, WaitForSingleObject+/;
30+
private import core.sys.windows.windef /+: BOOL, DWORD+/;
31+
private import core.sys.windows.winerror /+: WAIT_TIMEOUT+/;
2732
}
2833
else version (Posix)
2934
{

src/core/sync/mutex.d

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@ public import core.sync.exception;
2020

2121
version (Windows)
2222
{
23-
private import core.sys.windows.windows;
23+
private import core.sys.windows.winbase /+: CRITICAL_SECTION, DeleteCriticalSection,
24+
EnterCriticalSection, InitializeCriticalSection, LeaveCriticalSection,
25+
TryEnterCriticalSection+/;
2426
}
2527
else version (Posix)
2628
{

src/core/sync/semaphore.d

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@ else version (WatchOS)
2929

3030
version (Windows)
3131
{
32-
private import core.sys.windows.windows;
32+
private import core.sys.windows.basetsd /+: HANDLE+/;
33+
private import core.sys.windows.winbase /+: CloseHandle, CreateSemaphoreA, INFINITE,
34+
ReleaseSemaphore, WAIT_OBJECT_0, WaitForSingleObject+/;
35+
private import core.sys.windows.windef /+: BOOL, DWORD+/;
36+
private import core.sys.windows.winerror /+: WAIT_TIMEOUT+/;
3337
}
3438
else version (Darwin)
3539
{

src/core/sys/windows/aclapi.d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ version (Windows):
1313
version (ANSI) {} else version = Unicode;
1414
pragma(lib, "advapi32");
1515

16-
import core.sys.windows.windows, core.sys.windows.accctrl;
16+
import core.sys.windows.accctrl, core.sys.windows.basetyps, core.sys.windows.w32api, core.sys.windows.winnt;
1717

1818
extern (Windows) {
1919
VOID BuildExplicitAccessWithNameA(PEXPLICIT_ACCESS_A, LPSTR, DWORD,

src/core/sys/windows/com.d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ version (Windows):
44
pragma(lib,"uuid");
55

66
import core.atomic;
7-
import core.sys.windows.windows;
7+
import core.sys.windows.windef /+: HRESULT, LONG, ULONG+/;
88
//import std.string;
99

1010
public import core.sys.windows.basetyps : GUID, IID, CLSID;

src/core/sys/windows/comcat.d

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
module core.sys.windows.comcat;
1111
version (Windows):
1212

13-
import core.sys.windows.windows, core.sys.windows.ole2;
13+
import core.sys.windows.ole2;
1414
private import core.sys.windows.basetyps, core.sys.windows.cguid, core.sys.windows.objbase, core.sys.windows.unknwn,
1515
core.sys.windows.windef, core.sys.windows.wtypes;
1616

src/core/sys/windows/dbghelp.d

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
module core.sys.windows.dbghelp;
1313
version (Windows):
1414

15-
import core.sys.windows.windows;
15+
import core.sys.windows.winbase /+: FreeLibrary, GetProcAddress, LoadLibraryA+/;
16+
import core.sys.windows.windef;
1617

1718
public import core.sys.windows.dbghelp_types;
1819

src/core/sys/windows/dbghelp_types.d

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ version (Windows):
1414

1515
version (ANSI) {} else version = Unicode;
1616

17-
import core.sys.windows.windows;
17+
import core.sys.windows.windef;
18+
import core.sys.windows.imagehlp /+: ADDRESS_MODE+/;
1819

1920
public import core.sys.windows.winnt : TCHAR;
2021

0 commit comments

Comments
 (0)