Преглед изворни кода

telemetry_session: Use a std::array in GenerateTelemetryId()

We don't need to potentially heap-allocate a std::string instance here,
given the data is known ahead of time. We can just place it within an
array and pass this to the mbedtls functions.
Lioncash пре 7 година
родитељ
комит
8723cc8798
1 измењених фајлова са 4 додато и 2 уклоњено
  1. 4 2
      src/core/telemetry_session.cpp

+ 4 - 2
src/core/telemetry_session.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 // Refer to the license.txt file included.
 
 
+#include <array>
+
 #include "common/assert.h"
 #include "common/assert.h"
 #include "common/common_types.h"
 #include "common/common_types.h"
 #include "common/file_util.h"
 #include "common/file_util.h"
@@ -28,11 +30,11 @@ static u64 GenerateTelemetryId() {
     mbedtls_entropy_context entropy;
     mbedtls_entropy_context entropy;
     mbedtls_entropy_init(&entropy);
     mbedtls_entropy_init(&entropy);
     mbedtls_ctr_drbg_context ctr_drbg;
     mbedtls_ctr_drbg_context ctr_drbg;
-    std::string personalization = "yuzu Telemetry ID";
+    constexpr std::array<char, 18> personalization{{"yuzu Telemetry ID"}};
 
 
     mbedtls_ctr_drbg_init(&ctr_drbg);
     mbedtls_ctr_drbg_init(&ctr_drbg);
     ASSERT(mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
     ASSERT(mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
-                                 reinterpret_cast<const unsigned char*>(personalization.c_str()),
+                                 reinterpret_cast<const unsigned char*>(personalization.data()),
                                  personalization.size()) == 0);
                                  personalization.size()) == 0);
     ASSERT(mbedtls_ctr_drbg_random(&ctr_drbg, reinterpret_cast<unsigned char*>(&telemetry_id),
     ASSERT(mbedtls_ctr_drbg_random(&ctr_drbg, reinterpret_cast<unsigned char*>(&telemetry_id),
                                    sizeof(u64)) == 0);
                                    sizeof(u64)) == 0);