Skip to content

Commit 162df1d

Browse files
authored
Merge pull request #83643 from compnerd/mirror-warnings
SwiftRemoteMirror: adjust for Windows
2 parents 31f344d + d541266 commit 162df1d

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

stdlib/public/SwiftRemoteMirror/SwiftRemoteMirror.cpp

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -442,12 +442,19 @@ swift_reflection_copyNameForTypeRef(SwiftReflectionContextRef ContextRef,
442442
if (mangled) {
443443
auto Mangling = mangleNode(TR->getDemangling(Dem), Mangle::ManglingFlavor::Default);
444444
if (Mangling.isSuccess()) {
445+
#if defined(_WIN32)
446+
return _strdup(Mangling.result().c_str());
447+
#else
445448
return strdup(Mangling.result().c_str());
449+
#endif
446450
}
447-
}
448-
else {
451+
} else {
449452
auto Name = nodeToString(TR->getDemangling(Dem));
453+
#if defined(_WIN32)
454+
return _strdup(Name.c_str());
455+
#else
450456
return strdup(Name.c_str());
457+
#endif
451458
}
452459
return nullptr;
453460
}
@@ -462,7 +469,11 @@ swift_reflection_copyDemangledNameForProtocolDescriptor(
462469
auto Demangling = Context->readDemanglingForContextDescriptor(
463470
RemoteAddress(Proto, RemoteAddress::DefaultAddressSpace), Dem);
464471
auto Name = nodeToString(Demangling);
472+
#if defined(_WIN32)
473+
return _strdup(Name.c_str());
474+
#else
465475
return strdup(Name.c_str());
476+
#endif
466477
});
467478
}
468479

@@ -845,7 +856,13 @@ size_t swift_reflection_demangle(const char *MangledName, size_t Length,
845856

846857
std::string Mangled(MangledName, Length);
847858
auto Demangled = Demangle::demangleTypeAsString(Mangled);
859+
#if defined(_WIN32)
860+
errno_t err = strncpy_s(OutDemangledName, MaxLength,
861+
Demangled.c_str(), _TRUNCATE);
862+
static_cast<void>(err);
863+
#else
848864
strncpy(OutDemangledName, Demangled.c_str(), MaxLength);
865+
#endif
849866
return Demangled.size();
850867
}
851868

0 commit comments

Comments
 (0)