• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Aucun tag

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

The MinGW.org Windows System Libraries


Commit MetaInfo

Révisiond1b3b1693bdec6472d72b085b1e2651866472162 (tree)
l'heure2017-06-21 06:41:37
AuteurKeith Marshall <keithmarshall@user...>
CommiterKeith Marshall

Message de Log

Make <winnt.h> header effectively self-contained.

Change Summary

Modification

--- a/w32api/ChangeLog
+++ b/w32api/ChangeLog
@@ -1,3 +1,11 @@
1+2017-06-20 Keith Marshall <keithmarshall@users.sourceforge.net>
2+
3+ Make <winnt.h> header effectively self-contained.
4+
5+ * include/winnt.h (_WINNT_H): Defer definition unless included via...
6+ (windef.h): ...this; include it, to enforce inclusion order, then...
7+ [_WINNT_H]: ...re-evaluate it, to avoid recursive inclusion loop.
8+
19 2017-06-12 Keith Marshall <keithmarshall@users.sourceforge.net>
210
311 Consolidate <winuser.h> version specific conditionals.
--- a/w32api/include/winnt.h
+++ b/w32api/include/winnt.h
@@ -31,6 +31,16 @@
3131 */
3232 #ifndef _WINNT_H
3333 #pragma GCC system_header
34+
35+/* For effective self-containment, <winnt.h> requires <windef.h> to have
36+ * been included, BEFORE defining the _WINNT_H repeat inclusion guard...
37+ */
38+#include <windef.h>
39+/* ...but this has the unfortunate side effect that <windef.h> may then
40+ * recursively include <winnt.h>; retest the inclusion guard, to break
41+ * out of any ensuing recursive inclusion loop.
42+ */
43+#ifndef _WINNT_H
3444 #define _WINNT_H
3545
3646 #include <winerror.h>
@@ -4324,4 +4334,5 @@ static FORCEINLINE void MemoryBarrier (void)
43244334 _END_C_DECLS
43254335
43264336 #endif /* ! RC_INVOKED */
4337+#endif /* !_WINNT_H: internal recursion break */
43274338 #endif /* !_WINNT_H: $RCSfile$: end of file */