summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--thread_win32.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/thread_win32.c b/thread_win32.c
index f4b4ea214c..04c48653c5 100644
--- a/thread_win32.c
+++ b/thread_win32.c
@@ -546,6 +546,17 @@ ruby_init_stack(volatile VALUE *addr)
#define CHECK_ERR(expr) \
{if (!(expr)) {rb_bug("err: %lu - %s", GetLastError(), #expr);}}
+COMPILER_WARNING_PUSH
+#if defined(__GNUC__)
+COMPILER_WARNING_IGNORED(-Wmaybe-uninitialized)
+#endif
+static inline SIZE_T
+query_memory_basic_info(PMEMORY_BASIC_INFORMATION mi)
+{
+ return VirtualQuery(mi, mi, sizeof(*mi));
+}
+COMPILER_WARNING_POP
+
static void
native_thread_init_stack(rb_thread_t *th)
{
@@ -553,7 +564,7 @@ native_thread_init_stack(rb_thread_t *th)
char *base, *end;
DWORD size, space;
- CHECK_ERR(VirtualQuery(&mi, &mi, sizeof(mi)));
+ CHECK_ERR(query_memory_basic_info(&mi));
base = mi.AllocationBase;
end = mi.BaseAddress;
end += mi.RegionSize;