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

Commit 7a3fe90a authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Migrate metrics away from deprecated writeCString" into main

parents 58834550 b1d83e83
Loading
Loading
Loading
Loading
+6 −11
Original line number Diff line number Diff line
@@ -60,15 +60,13 @@ status_t mediametrics::Item::readFromParcel(const Parcel& data) {
}

status_t mediametrics::Item::readFromParcel0(const Parcel& data) {
    const char *s = data.readCString();
    mKey = s == nullptr ? "" : s;
    mKey = std::string{data.readString8()};
    int32_t pid, uid;
    status_t status = data.readInt32(&pid) ?: data.readInt32(&uid);
    if (status != NO_ERROR) return status;
    mPid = (pid_t)pid;
    mUid = (uid_t)uid;
    s = data.readCString();
    mPkgName = s == nullptr ? "" : s;
    mPkgName = std::string(data.readString8());
    int32_t count;
    int64_t version, timestamp;
    status = data.readInt64(&version) ?: data.readInt64(&timestamp) ?: data.readInt32(&count);
@@ -103,10 +101,10 @@ status_t mediametrics::Item::writeToParcel(Parcel *data) const {

status_t mediametrics::Item::writeToParcel0(Parcel *data) const {
    status_t status =
        data->writeCString(mKey.c_str())
        data->writeString8(String8{mKey})
        ?: data->writeInt32(mPid)
        ?: data->writeInt32(mUid)
        ?: data->writeCString(mPkgName.c_str())
        ?: data->writeString8(String8{mPkgName})
        ?: data->writeInt64(mPkgVersionCode)
        ?: data->writeInt64(mTimestamp);
    if (status != NO_ERROR) return status;
@@ -268,8 +266,7 @@ status_t mediametrics::Item::readFromByteString(const char *bufferptr, size_t le

status_t mediametrics::Item::Prop::readFromParcel(const Parcel& data)
{
    const char *key = data.readCString();
    if (key == nullptr) return BAD_VALUE;
    const std::string key {data.readString8()};
    int32_t type;
    status_t status = data.readInt32(&type);
    if (status != NO_ERROR) return status;
@@ -293,9 +290,7 @@ status_t mediametrics::Item::Prop::readFromParcel(const Parcel& data)
        mElem = value;
    } break;
    case mediametrics::kTypeCString: {
        const char *s = data.readCString();
        if (s == nullptr) return BAD_VALUE;
        mElem = s;
        mElem = std::string{data.readString8()};
    } break;
    case mediametrics::kTypeRate: {
        std::pair<int64_t, int64_t> rate;
+21 −23
Original line number Diff line number Diff line
@@ -433,48 +433,42 @@ protected:
    }

    template <typename T>
    static status_t writeToParcel(
            const char *name, const T& value, Parcel *parcel) = delete;
    static status_t writeToParcel(std::string_view name, const T& value, Parcel *parcel) = delete;
    template <> // static
    status_t writeToParcel(
            const char *name, const int32_t& value, Parcel *parcel) {
        return parcel->writeCString(name)
    status_t writeToParcel(std::string_view name, const int32_t& value, Parcel *parcel) {
        return parcel->writeString8(name.data(), name.length())
               ?: parcel->writeInt32(get_type_of<int32_t>::value)
               ?: parcel->writeInt32(value);
    }
    template <> // static
    status_t writeToParcel(
            const char *name, const int64_t& value, Parcel *parcel) {
        return parcel->writeCString(name)
    status_t writeToParcel(std::string_view name, const int64_t& value, Parcel *parcel) {
        return parcel->writeString8(name.data(), name.length())
               ?: parcel->writeInt32(get_type_of<int64_t>::value)
               ?: parcel->writeInt64(value);
    }
    template <> // static
    status_t writeToParcel(
            const char *name, const double& value, Parcel *parcel) {
        return parcel->writeCString(name)
    status_t writeToParcel(std::string_view name, const double& value, Parcel *parcel) {
        return parcel->writeString8(name.data(), name.length())
               ?: parcel->writeInt32(get_type_of<double>::value)
               ?: parcel->writeDouble(value);
    }
    template <>  // static
    status_t writeToParcel(
            const char *name, const std::pair<int64_t, int64_t>& value, Parcel *parcel) {
        return parcel->writeCString(name)
    status_t writeToParcel(std::string_view name, const std::pair<int64_t, int64_t>& value,
                           Parcel* parcel) {
        return parcel->writeString8(name.data(), name.length())
               ?: parcel->writeInt32(get_type_of< std::pair<int64_t, int64_t>>::value)
               ?: parcel->writeInt64(value.first)
               ?: parcel->writeInt64(value.second);
    }
    template <> // static
    status_t writeToParcel(
            const char *name, const std::string& value, Parcel *parcel) {
        return parcel->writeCString(name)
    status_t writeToParcel(std::string_view name, const std::string& value, Parcel *parcel) {
        return parcel->writeString8(name.data(), name.length())
               ?: parcel->writeInt32(get_type_of<std::string>::value)
               ?: parcel->writeCString(value.c_str());
               ?: parcel->writeString8(value.data(), value.length());
    }
    template <> // static
    status_t writeToParcel(
            const char *name, const std::monostate&, Parcel *parcel) {
        return parcel->writeCString(name)
    status_t writeToParcel(std::string_view name, const std::monostate&, Parcel *parcel) {
        return parcel->writeString8(name.data(), name.length())
               ?: parcel->writeInt32(get_type_of<std::monostate>::value);
    }

@@ -802,6 +796,10 @@ public:
            mName = name;
        }

        void setName(std::string name) {
            mName = std::move(name);
        }

        bool isNamed(const char *name) const {
            return mName == name;
        }
@@ -848,7 +846,7 @@ public:

        status_t writeToParcel(Parcel *parcel) const {
            return std::visit([this, parcel](auto &value) {
                    return BaseItem::writeToParcel(mName.c_str(), value, parcel);}, mElem);
                    return BaseItem::writeToParcel(mName, value, parcel);}, mElem);
        }

        void toStringBuffer(char *buffer, size_t length) const {