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

Commit 42d524f7 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "logd: statistics truncate name"

parents 0301b321 f31ae3d6
Loading
Loading
Loading
Loading
+31 −30
Original line number Original line Diff line number Diff line
@@ -248,18 +248,38 @@ std::string UidEntry::formatHeader(const std::string& name, log_id_t id) const {
                      std::string(isprune ? "NUM" : ""));
                      std::string(isprune ? "NUM" : ""));
}
}


std::string UidEntry::format(const LogStatistics& stat, log_id_t id) const {
// Helper to truncate name, if too long, and add name dressings
    uid_t uid = getUid();
static void formatTmp(const LogStatistics& stat, const char* nameTmp, uid_t uid,
    std::string name = android::base::StringPrintf("%u", uid);
                      std::string& name, std::string& size, size_t nameLen) {
    const char* nameTmp = stat.uidToName(uid);
    const char* allocNameTmp = nullptr;
    if (!nameTmp) nameTmp = allocNameTmp = stat.uidToName(uid);
    if (nameTmp) {
    if (nameTmp) {
        name += android::base::StringPrintf(
        size_t lenSpace = std::max(nameLen - name.length(), (size_t)1);
            "%*s%s", (int)std::max(6 - name.length(), (size_t)1), "", nameTmp);
        size_t len = EntryBaseConstants::total_len -
        free(const_cast<char*>(nameTmp));
                     EntryBaseConstants::pruned_len - size.length() -
                     name.length() - lenSpace - 2;
        size_t lenNameTmp = strlen(nameTmp);
        while ((len < lenNameTmp) && (lenSpace > 1)) {
            ++len;
            --lenSpace;
        }
        name += android::base::StringPrintf("%*s", (int)lenSpace, "");
        if (len < lenNameTmp) {
            name += "...";
            nameTmp += lenNameTmp - std::max(len - 3, (size_t)1);
        }
        name += nameTmp;
        free(const_cast<char*>(allocNameTmp));
    }
}
}


std::string UidEntry::format(const LogStatistics& stat, log_id_t id) const {
    uid_t uid = getUid();
    std::string name = android::base::StringPrintf("%u", uid);
    std::string size = android::base::StringPrintf("%zu", getSizes());
    std::string size = android::base::StringPrintf("%zu", getSizes());


    formatTmp(stat, nullptr, uid, name, size, 6);

    std::string pruned = "";
    std::string pruned = "";
    if (worstUidEnabledForLogid(id)) {
    if (worstUidEnabledForLogid(id)) {
        size_t totalDropped = 0;
        size_t totalDropped = 0;
@@ -366,18 +386,10 @@ std::string PidEntry::format(const LogStatistics& stat,
    uid_t uid = getUid();
    uid_t uid = getUid();
    pid_t pid = getPid();
    pid_t pid = getPid();
    std::string name = android::base::StringPrintf("%5u/%u", pid, uid);
    std::string name = android::base::StringPrintf("%5u/%u", pid, uid);
    const char* nameTmp = getName();
    if (nameTmp) {
        name += android::base::StringPrintf(
            "%*s%s", (int)std::max(12 - name.length(), (size_t)1), "", nameTmp);
    } else if ((nameTmp = stat.uidToName(uid))) {
        name += android::base::StringPrintf(
            "%*s%s", (int)std::max(12 - name.length(), (size_t)1), "", nameTmp);
        free(const_cast<char*>(nameTmp));
    }

    std::string size = android::base::StringPrintf("%zu", getSizes());
    std::string size = android::base::StringPrintf("%zu", getSizes());


    formatTmp(stat, getName(), uid, name, size, 12);

    std::string pruned = "";
    std::string pruned = "";
    size_t dropped = getDropped();
    size_t dropped = getDropped();
    if (dropped) {
    if (dropped) {
@@ -398,21 +410,10 @@ std::string TidEntry::format(const LogStatistics& stat,
                             log_id_t /* id */) const {
                             log_id_t /* id */) const {
    uid_t uid = getUid();
    uid_t uid = getUid();
    std::string name = android::base::StringPrintf("%5u/%u", getTid(), uid);
    std::string name = android::base::StringPrintf("%5u/%u", getTid(), uid);
    const char* nameTmp = getName();
    if (nameTmp) {
        name += android::base::StringPrintf(
            "%*s%s", (int)std::max(12 - name.length(), (size_t)1), "", nameTmp);
    } else if ((nameTmp = stat.uidToName(uid))) {
        // if we do not have a PID name, lets punt to try UID name?
        name += android::base::StringPrintf(
            "%*s%s", (int)std::max(12 - name.length(), (size_t)1), "", nameTmp);
        free(const_cast<char*>(nameTmp));
        // We tried, better to not have a name at all, we still
        // have TID/UID by number to report in any case.
    }

    std::string size = android::base::StringPrintf("%zu", getSizes());
    std::string size = android::base::StringPrintf("%zu", getSizes());


    formatTmp(stat, getName(), uid, name, size, 12);

    std::string pruned = "";
    std::string pruned = "";
    size_t dropped = getDropped();
    size_t dropped = getDropped();
    if (dropped) {
    if (dropped) {