From 919409cb28a2ef9e97d7b15046fed2c5a4d0500f Mon Sep 17 00:00:00 2001
From: gcontini <1121667+gcontini@users.noreply.github.com>
Date: 周日, 15 3月 2020 11:00:50 +0800
Subject: [PATCH] fix cpuid

---
 src/library/os/windows/cpu_info.cpp |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/library/os/windows/cpu_info.cpp b/src/library/os/windows/cpu_info.cpp
index 192e178..f4b0e81 100644
--- a/src/library/os/windows/cpu_info.cpp
+++ b/src/library/os/windows/cpu_info.cpp
@@ -41,8 +41,14 @@
 string CpuInfo::vendor() const {
 	// hypervisor flag false, try to get the vendor name, see if it's a virtual cpu
 	int cpui[4] = {0};
-	__cpuid(cpui, 0x0);
-	return string(reinterpret_cast<const char *>(cpui), 12);
+	__cpuidex(cpui, 0x0, 0x0);
+
+	char vendor[13];
+	memset(vendor, 0, sizeof(vendor));
+	*reinterpret_cast<int *>(vendor) = cpui[1];
+	*reinterpret_cast<int *>(vendor +4) = cpui[3];
+	*reinterpret_cast<int *>(vendor + 8) = cpui[2];
+	return string(vendor, 12);
 }
 }  // namespace os
 } /* namespace license */

--
Gitblit v1.9.1