From b5d7d379aa2a92eb794c658a876be67c5691a509 Mon Sep 17 00:00:00 2001 From: Anush Nadathur Date: Sat, 24 Feb 2024 00:00:55 +0530 Subject: [PATCH] Code Review Feedback: Remove access to Value in MetricEvent to avoid incorrect access --- src/darwin/Framework/CHIP/MTRMetricsCollector.mm | 6 +++--- src/tracing/esp32_trace/esp32_tracing.cpp | 2 +- src/tracing/json/json_tracing.cpp | 2 +- src/tracing/metric_event.h | 5 ++++- src/tracing/perfetto/perfetto_tracing.cpp | 2 +- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/darwin/Framework/CHIP/MTRMetricsCollector.mm b/src/darwin/Framework/CHIP/MTRMetricsCollector.mm index 1406fe98508c3e..f3752d2a717e21 100644 --- a/src/darwin/Framework/CHIP/MTRMetricsCollector.mm +++ b/src/darwin/Framework/CHIP/MTRMetricsCollector.mm @@ -49,7 +49,7 @@ - (instancetype)initWithMetricEvent:(const MetricEvent &)event } using ValueType = MetricEvent::Value::Type; - switch (event.value().type) { + switch (event.ValueType()) { case ValueType::kInt32: _value = [NSNumber numberWithInteger:event.ValueInt32()]; break; @@ -163,7 +163,7 @@ - (void)handleMetricEvent:(MetricEvent)event std::lock_guard lock(_lock); using ValueType = MetricEvent::Value::Type; - switch (event.value().type) { + switch (event.ValueType()) { case ValueType::kInt32: MTR_LOG_INFO("Received metric event, key: %s, type: %d, value: %d", event.key(), event.type(), event.ValueInt32()); break; @@ -201,7 +201,7 @@ - (void)handleMetricEvent:(MetricEvent)event // If the event is a begin or end event, implicitly emit a corresponding instant event if (event.type() == MetricEvent::Type::kBeginEvent || event.type() == MetricEvent::Type::kEndEvent) { - MetricEvent instantEvent(MetricEvent::Type::kInstantEvent, event.key(), event.value()); + MetricEvent instantEvent(MetricEvent::Type::kInstantEvent, event.key()); data = [[MTRMetricsData alloc] initWithMetricEvent:instantEvent]; metricsKey = [NSString stringWithFormat:@"%s%@", event.key(), suffixNameForMetric(instantEvent)]; [_metricsDataCollection setValue:data forKey:metricsKey]; diff --git a/src/tracing/esp32_trace/esp32_tracing.cpp b/src/tracing/esp32_trace/esp32_tracing.cpp index 0f3b3875a6fccf..db5f09ee9a751c 100644 --- a/src/tracing/esp32_trace/esp32_tracing.cpp +++ b/src/tracing/esp32_trace/esp32_tracing.cpp @@ -166,7 +166,7 @@ void ESP32Backend::LogMetricEvent(const MetricEvent & event) } using ValueType = MetricEvent::Value::Type; - switch (event.value().type) + switch (event.ValueType()) { case ValueType::kInt32: ESP_LOGI("mtr", "The value of %s is %ld ", event.key(), event.ValueInt32()); diff --git a/src/tracing/json/json_tracing.cpp b/src/tracing/json/json_tracing.cpp index de511d639043ca..91b4474388ecd0 100644 --- a/src/tracing/json/json_tracing.cpp +++ b/src/tracing/json/json_tracing.cpp @@ -303,7 +303,7 @@ void JsonBackend::LogMetricEvent(const MetricEvent & event) value["label"] = event.key(); using ValueType = MetricEvent::Value::Type; - switch (event.value().type) + switch (event.ValueType()) { case ValueType::kInt32: value["value"] = event.ValueInt32(); diff --git a/src/tracing/metric_event.h b/src/tracing/metric_event.h index 2ab864511d972a..e155df7bf4b400 100644 --- a/src/tracing/metric_event.h +++ b/src/tracing/metric_event.h @@ -117,7 +117,10 @@ class MetricEvent MetricKey key() const { return mKey; } - Value value() const { return mValue; } + Value::Type ValueType() const + { + return mValue.type; + } uint32_t ValueUInt32() const { diff --git a/src/tracing/perfetto/perfetto_tracing.cpp b/src/tracing/perfetto/perfetto_tracing.cpp index 973b438be81ab0..f9b00cc7ad96d3 100644 --- a/src/tracing/perfetto/perfetto_tracing.cpp +++ b/src/tracing/perfetto/perfetto_tracing.cpp @@ -130,7 +130,7 @@ void PerfettoBackend::LogNodeDiscoveryFailed(NodeDiscoveryFailedInfo & info) void PerfettoBackend::LogMetricEvent(const MetricEvent & event) { using ValueType = MetricEvent::Value::Type; - switch (event.value().type) + switch (event.ValueType()) { case ValueType::kInt32: TRACE_EVENT_INSTANT("Matter", event.key(), "value", event.ValueInt32());