Skip to content

Commit d82d177

Browse files
Update sysutil_platform.cpp
1 parent 57ac045 commit d82d177

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

src/sysutil_platform.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -274,21 +274,28 @@ void init_platform_info() {
274274
const bool has_cached_platform =
275275
(load_result == ConfigLoadResult::Loaded &&
276276
config.platform_type.has_value() && config.platform_name.has_value());
277+
const bool cached_unknown_platform =
278+
(has_cached_platform &&
279+
config.platform_type.value() == X_PLATFORM_TYPE_UNKNOWN);
280+
const bool use_cached_platform = has_cached_platform && !cached_unknown_platform;
277281

278-
if (load_result == ConfigLoadResult::Loaded && config.platform_type) {
282+
if (load_result == ConfigLoadResult::Loaded && config.platform_type &&
283+
!cached_unknown_platform) {
279284
g_platform_info.platform_type = *config.platform_type;
280285
} else {
281286
g_platform_info.platform_type = discover_platform_type();
282287
}
283288

284-
if (load_result == ConfigLoadResult::Loaded && config.platform_name) {
289+
if (load_result == ConfigLoadResult::Loaded && config.platform_name &&
290+
!cached_unknown_platform) {
285291
g_platform_info.platform_name = *config.platform_name;
286292
} else {
287293
g_platform_info.platform_name =
288294
platform_type_to_string(g_platform_info.platform_type);
289295
}
290296

291-
if (!has_cached_platform && load_result != ConfigLoadResult::Error) {
297+
if ((!has_cached_platform || cached_unknown_platform) &&
298+
load_result != ConfigLoadResult::Error) {
292299
SysutilConfig updated_config = config;
293300
updated_config.platform_type = g_platform_info.platform_type;
294301
updated_config.platform_name = g_platform_info.platform_name;
@@ -297,7 +304,7 @@ void init_platform_info() {
297304
write_platform_manifest(g_platform_info);
298305
log_platform("Active platform: type=" + std::to_string(g_platform_info.platform_type) +
299306
" name=" + g_platform_info.platform_name +
300-
" source=" + (has_cached_platform ? std::string("config-cache")
307+
" source=" + (use_cached_platform ? std::string("config-cache")
301308
: std::string("detected")));
302309
g_platform_initialized = true;
303310
}

0 commit comments

Comments
 (0)