diff --git a/cmds/statsd/src/StatsService.cpp b/cmds/statsd/src/StatsService.cpp index 812d10be4bf6b..64f457c998d21 100644 --- a/cmds/statsd/src/StatsService.cpp +++ b/cmds/statsd/src/StatsService.cpp @@ -1059,36 +1059,26 @@ void StatsService::OnLogEvent(LogEvent* event) { } } -Status StatsService::getData(int64_t key, const int32_t callingUid, vector* output) { +Status StatsService::getData(int64_t key, const int32_t callingUid, vector* output) { ENFORCE_UID(AID_SYSTEM); VLOG("StatsService::getData with Uid %i", callingUid); ConfigKey configKey(callingUid, key); - // TODO(b/149254662): Since libbinder_ndk uses int8_t instead of uint8_t, - // there are inconsistencies with internal statsd logic. Instead of - // modifying lots of files, we create a temporary output array of int8_t and - // copy its data into output. This is a bad hack, but hopefully - // libbinder_ndk will transition to using uint8_t soon: progress is tracked - // in b/144957764. Same applies to StatsService::getMetadata. - vector unsignedOutput; // The dump latency does not matter here since we do not include the current bucket, we do not // need to pull any new data anyhow. mProcessor->onDumpReport(configKey, getElapsedRealtimeNs(), false /* include_current_bucket*/, - true /* erase_data */, GET_DATA_CALLED, FAST, &unsignedOutput); - *output = vector(unsignedOutput.begin(), unsignedOutput.end()); + true /* erase_data */, GET_DATA_CALLED, FAST, output); return Status::ok(); } -Status StatsService::getMetadata(vector* output) { +Status StatsService::getMetadata(vector* output) { ENFORCE_UID(AID_SYSTEM); - vector unsignedOutput; - StatsdStats::getInstance().dumpStats(&unsignedOutput, false); // Don't reset the counters. - *output = vector(unsignedOutput.begin(), unsignedOutput.end()); + StatsdStats::getInstance().dumpStats(output, false); // Don't reset the counters. return Status::ok(); } -Status StatsService::addConfiguration(int64_t key, const vector & config, +Status StatsService::addConfiguration(int64_t key, const vector & config, const int32_t callingUid) { ENFORCE_UID(AID_SYSTEM); @@ -1099,7 +1089,7 @@ Status StatsService::addConfiguration(int64_t key, const vector & config } } -bool StatsService::addConfigurationChecked(int uid, int64_t key, const vector& config) { +bool StatsService::addConfigurationChecked(int uid, int64_t key, const vector& config) { ConfigKey configKey(uid, key); StatsdConfig cfg; if (config.size() > 0) { // If the config is empty, skip parsing. diff --git a/cmds/statsd/src/StatsService.h b/cmds/statsd/src/StatsService.h index 114c84f953c87..460015cef6d8b 100644 --- a/cmds/statsd/src/StatsService.h +++ b/cmds/statsd/src/StatsService.h @@ -94,13 +94,13 @@ public: */ virtual Status getData(int64_t key, const int32_t callingUid, - vector* output) override; + vector* output) override; /** * Binder call for clients to get metadata across all configs in statsd. */ - virtual Status getMetadata(vector* output) override; + virtual Status getMetadata(vector* output) override; /** @@ -108,7 +108,7 @@ public: * should requestData for this configuration. */ virtual Status addConfiguration(int64_t key, - const vector& config, + const vector& config, const int32_t callingUid) override; /** @@ -318,7 +318,7 @@ private: /** * Adds a configuration after checking permissions and obtaining UID from binder call. */ - bool addConfigurationChecked(int uid, int64_t key, const vector& config); + bool addConfigurationChecked(int uid, int64_t key, const vector& config); /** * Update a configuration. diff --git a/cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp b/cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp index 371a34625b797..2724bbb8d6186 100644 --- a/cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp +++ b/cmds/statsd/tests/e2e/PartialBucket_e2e_test.cpp @@ -39,7 +39,7 @@ const int kCallingUid = 0; // Randomly chosen void SendConfig(shared_ptr& service, const StatsdConfig& config) { string str; config.SerializeToString(&str); - std::vector configAsVec(str.begin(), str.end()); + std::vector configAsVec(str.begin(), str.end()); service->addConfiguration(kConfigKey, configAsVec, kCallingUid); }