summaryrefslogtreecommitdiff
path: root/libs/gui/LayerMetadata.cpp
diff options
context:
space:
mode:
author Xin Li <delphij@google.com> 2024-06-20 20:42:50 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-06-20 20:42:50 +0000
commit3dd03323aa8825a0c7bf4dcc1ed6d6c3b88a3d7f (patch)
treee05639565a22611c334a83a35a998f3fba3e1f1a /libs/gui/LayerMetadata.cpp
parent447d0a33acc9827809d1049023b05e4cac05fc70 (diff)
parentbb1814a0b94e8efb3fa3843c3d6a6533a382cac3 (diff)
Merge "Merge 24Q3 (ab/11976889) to aosp-main-future" into aosp-main-future
Diffstat (limited to 'libs/gui/LayerMetadata.cpp')
-rw-r--r--libs/gui/LayerMetadata.cpp26
1 files changed, 15 insertions, 11 deletions
diff --git a/libs/gui/LayerMetadata.cpp b/libs/gui/LayerMetadata.cpp
index 4e12fd330c..535a0218b6 100644
--- a/libs/gui/LayerMetadata.cpp
+++ b/libs/gui/LayerMetadata.cpp
@@ -100,27 +100,31 @@ bool LayerMetadata::has(uint32_t key) const {
int32_t LayerMetadata::getInt32(uint32_t key, int32_t fallback) const {
if (!has(key)) return fallback;
const std::vector<uint8_t>& data = mMap.at(key);
- if (data.size() < sizeof(uint32_t)) return fallback;
- Parcel p;
- p.setData(data.data(), data.size());
- return p.readInt32();
+
+ // TODO: should handle when not equal?
+ if (data.size() < sizeof(int32_t)) return fallback;
+
+ int32_t result;
+ memcpy(&result, data.data(), sizeof(result));
+ return result;
}
void LayerMetadata::setInt32(uint32_t key, int32_t value) {
std::vector<uint8_t>& data = mMap[key];
- Parcel p;
- p.writeInt32(value);
- data.resize(p.dataSize());
- memcpy(data.data(), p.data(), p.dataSize());
+ data.resize(sizeof(value));
+ memcpy(data.data(), &value, sizeof(value));
}
std::optional<int64_t> LayerMetadata::getInt64(uint32_t key) const {
if (!has(key)) return std::nullopt;
const std::vector<uint8_t>& data = mMap.at(key);
+
+ // TODO: should handle when not equal?
if (data.size() < sizeof(int64_t)) return std::nullopt;
- Parcel p;
- p.setData(data.data(), data.size());
- return p.readInt64();
+
+ int64_t result;
+ memcpy(&result, data.data(), sizeof(result));
+ return result;
}
std::string LayerMetadata::itemToString(uint32_t key, const char* separator) const {