mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 16:50:18 +00:00
Fix bad command length calculation
SET_LAYER_PER_FRAME_METADATA_BLOBS command length was calculated wrong. With wrong length it's impossible to read current and any next commands right. Test: manual Bug: 144367999 Change-Id: I09a23bbf507996972ce7de0634f8866bbb13152a Signed-off-by: o.v.yevtushenko <o.v.yevtushenko@globallogic.com>
This commit is contained in:
committed by
Oleksandr Yevtushenko
parent
bbdd5e32fd
commit
8f76b5cfe6
@@ -79,6 +79,7 @@ class CommandWriterBase : public V2_2::CommandWriterBase {
|
||||
|
||||
void setLayerPerFrameMetadataBlobs(
|
||||
const hidl_vec<IComposerClient::PerFrameMetadataBlob>& metadata) {
|
||||
// in units of uint32_t's
|
||||
size_t commandLength = 0;
|
||||
|
||||
if (metadata.size() > std::numeric_limits<uint32_t>::max()) {
|
||||
@@ -86,12 +87,12 @@ class CommandWriterBase : public V2_2::CommandWriterBase {
|
||||
return;
|
||||
}
|
||||
|
||||
// number of blobs
|
||||
commandLength += metadata.size();
|
||||
// space for numElements
|
||||
commandLength += 1;
|
||||
|
||||
for (auto metadataBlob : metadata) {
|
||||
commandLength += sizeof(int32_t); // key of metadata blob
|
||||
commandLength += 1; // size information of metadata blob
|
||||
commandLength += 1; // key of metadata blob
|
||||
commandLength += 1; // size information of metadata blob
|
||||
|
||||
// metadata content size
|
||||
size_t metadataSize = metadataBlob.blob.size() / sizeof(uint32_t);
|
||||
|
||||
Reference in New Issue
Block a user