From ad18f354774364aba5f88d2ab49e117c35b9a1b6 Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Sun, 21 Jan 2024 00:50:27 -0800 Subject: [PATCH] [ntcore] Map int[] to int64[] for DataLog (#6279) --- ntcore/src/main/native/cpp/LocalStorage.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ntcore/src/main/native/cpp/LocalStorage.cpp b/ntcore/src/main/native/cpp/LocalStorage.cpp index 9cec61152f..26e898a483 100644 --- a/ntcore/src/main/native/cpp/LocalStorage.cpp +++ b/ntcore/src/main/native/cpp/LocalStorage.cpp @@ -46,10 +46,17 @@ bool LocalStorage::MultiSubscriberData::Matches(std::string_view name, } int LocalStorage::DataLoggerData::Start(TopicData* topic, int64_t time) { + std::string_view typeStr = topic->typeStr; + // NT and DataLog use different standard representations for int and int[] + if (typeStr == "int") { + typeStr = "int64"; + } else if (typeStr == "int[]") { + typeStr = "int64[]"; + } return log.Start(fmt::format("{}{}", logPrefix, wpi::drop_front(topic->name, prefix.size())), - topic->typeStr == "int" ? "int64" : topic->typeStr, - DataLoggerEntry::MakeMetadata(topic->propertiesStr), time); + typeStr, DataLoggerEntry::MakeMetadata(topic->propertiesStr), + time); } void LocalStorage::DataLoggerEntry::Append(const Value& v) {