Loading media/libmediametrics/ItemSerialization.cpp +6 −11 Original line number Diff line number Diff line Loading @@ -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(×tamp) ?: data.readInt32(&count); Loading Loading @@ -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; Loading Loading @@ -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; Loading @@ -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; Loading media/libmediametrics/include/media/MediaMetricsItem.h +21 −23 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading @@ -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; } Loading Loading @@ -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 { Loading Loading
media/libmediametrics/ItemSerialization.cpp +6 −11 Original line number Diff line number Diff line Loading @@ -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(×tamp) ?: data.readInt32(&count); Loading Loading @@ -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; Loading Loading @@ -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; Loading @@ -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; Loading
media/libmediametrics/include/media/MediaMetricsItem.h +21 −23 Original line number Diff line number Diff line Loading @@ -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); } Loading Loading @@ -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; } Loading Loading @@ -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 { Loading