Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 23b9d90b authored by Jooyung Han's avatar Jooyung Han Committed by Android (Google) Code Review
Browse files

Merge "use vector<uint8_t> for byte[] in AIDL"

parents 3cd4194c d9a228a9
Loading
Loading
Loading
Loading
+6 −16
Original line number Diff line number Diff line
@@ -1059,36 +1059,26 @@ void StatsService::OnLogEvent(LogEvent* event) {
    }
}

Status StatsService::getData(int64_t key, const int32_t callingUid, vector<int8_t>* output) {
Status StatsService::getData(int64_t key, const int32_t callingUid, vector<uint8_t>* 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<uint8_t> 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<int8_t>(unsignedOutput.begin(), unsignedOutput.end());
                             true /* erase_data */, GET_DATA_CALLED, FAST, output);
    return Status::ok();
}

Status StatsService::getMetadata(vector<int8_t>* output) {
Status StatsService::getMetadata(vector<uint8_t>* output) {
    ENFORCE_UID(AID_SYSTEM);

    vector<uint8_t> unsignedOutput;
    StatsdStats::getInstance().dumpStats(&unsignedOutput, false); // Don't reset the counters.
    *output = vector<int8_t>(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 <int8_t>& config,
Status StatsService::addConfiguration(int64_t key, const vector <uint8_t>& config,
                                      const int32_t callingUid) {
    ENFORCE_UID(AID_SYSTEM);

@@ -1099,7 +1089,7 @@ Status StatsService::addConfiguration(int64_t key, const vector <int8_t>& config
    }
}

bool StatsService::addConfigurationChecked(int uid, int64_t key, const vector<int8_t>& config) {
bool StatsService::addConfigurationChecked(int uid, int64_t key, const vector<uint8_t>& config) {
    ConfigKey configKey(uid, key);
    StatsdConfig cfg;
    if (config.size() > 0) {  // If the config is empty, skip parsing.
+4 −4
Original line number Diff line number Diff line
@@ -94,13 +94,13 @@ public:
     */
    virtual Status getData(int64_t key,
                           const int32_t callingUid,
                           vector<int8_t>* output) override;
                           vector<uint8_t>* output) override;


    /**
     * Binder call for clients to get metadata across all configs in statsd.
     */
    virtual Status getMetadata(vector<int8_t>* output) override;
    virtual Status getMetadata(vector<uint8_t>* output) override;


    /**
@@ -108,7 +108,7 @@ public:
     * should requestData for this configuration.
     */
    virtual Status addConfiguration(int64_t key,
                                    const vector<int8_t>& config,
                                    const vector<uint8_t>& 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<int8_t>& config);
    bool addConfigurationChecked(int uid, int64_t key, const vector<uint8_t>& config);

    /**
     * Update a configuration.
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ const int kCallingUid = 0; // Randomly chosen
void SendConfig(shared_ptr<StatsService>& service, const StatsdConfig& config) {
    string str;
    config.SerializeToString(&str);
    std::vector<int8_t> configAsVec(str.begin(), str.end());
    std::vector<uint8_t> configAsVec(str.begin(), str.end());
    service->addConfiguration(kConfigKey, configAsVec, kCallingUid);
}