summaryrefslogtreecommitdiff
path: root/libs/ui/DisplayInfo.cpp
diff options
context:
space:
mode:
author Marin Shalamanov <shalamanov@google.com> 2020-04-06 16:11:25 +0200
committer Marin Shalamanov <shalamanov@google.com> 2020-04-22 12:49:54 +0200
commit896e6305b82864b6249588653e6eb53eed12cb5c (patch)
treec559c2dd03b9fdbc15fcf0307d035385e736481e /libs/ui/DisplayInfo.cpp
parent3000b08dc054152c6f039ea9f61b914661b24ec9 (diff)
Add relative address to DeviceProductInfo.
This CL adds a field relativeAddress to DeviceProductInfo so it can be surfaced in the framework. For HDMI connections the field is populated with the physical address. This CL also adds helper functions for serializing to Flattenable and enhances the serialization security. Bug: 147994746 Bug: 153589294 Test: atest DisplayIdentificationTest Change-Id: I2711407aa1be079df8086e233ee3f0cf90ba1741
Diffstat (limited to 'libs/ui/DisplayInfo.cpp')
-rw-r--r--libs/ui/DisplayInfo.cpp32
1 files changed, 16 insertions, 16 deletions
diff --git a/libs/ui/DisplayInfo.cpp b/libs/ui/DisplayInfo.cpp
index 6ed7e19690..73a78af186 100644
--- a/libs/ui/DisplayInfo.cpp
+++ b/libs/ui/DisplayInfo.cpp
@@ -20,10 +20,15 @@
#include <ui/FlattenableHelpers.h>
+#define RETURN_IF_ERROR(op) \
+ if (const status_t status = (op); status != OK) return status;
+
namespace android {
size_t DisplayInfo::getFlattenedSize() const {
- return sizeof(connectionType) + sizeof(density) + sizeof(secure) +
+ return FlattenableHelpers::getFlattenedSize(connectionType) +
+ FlattenableHelpers::getFlattenedSize(density) +
+ FlattenableHelpers::getFlattenedSize(secure) +
FlattenableHelpers::getFlattenedSize(deviceProductInfo);
}
@@ -31,24 +36,19 @@ status_t DisplayInfo::flatten(void* buffer, size_t size) const {
if (size < getFlattenedSize()) {
return NO_MEMORY;
}
- FlattenableUtils::write(buffer, size, connectionType);
- FlattenableUtils::write(buffer, size, density);
- FlattenableUtils::write(buffer, size, secure);
- FlattenableHelpers::write(buffer, size, deviceProductInfo);
-
- return NO_ERROR;
+ RETURN_IF_ERROR(FlattenableHelpers::flatten(&buffer, &size, connectionType));
+ RETURN_IF_ERROR(FlattenableHelpers::flatten(&buffer, &size, density));
+ RETURN_IF_ERROR(FlattenableHelpers::flatten(&buffer, &size, secure));
+ RETURN_IF_ERROR(FlattenableHelpers::flatten(&buffer, &size, deviceProductInfo));
+ return OK;
}
status_t DisplayInfo::unflatten(void const* buffer, size_t size) {
- if (size < getFlattenedSize()) {
- return NO_MEMORY;
- }
- FlattenableUtils::read(buffer, size, connectionType);
- FlattenableUtils::read(buffer, size, density);
- FlattenableUtils::read(buffer, size, secure);
- FlattenableHelpers::read(buffer, size, &deviceProductInfo);
-
- return NO_ERROR;
+ RETURN_IF_ERROR(FlattenableHelpers::unflatten(&buffer, &size, &connectionType));
+ RETURN_IF_ERROR(FlattenableHelpers::unflatten(&buffer, &size, &density));
+ RETURN_IF_ERROR(FlattenableHelpers::unflatten(&buffer, &size, &secure));
+ RETURN_IF_ERROR(FlattenableHelpers::unflatten(&buffer, &size, &deviceProductInfo));
+ return OK;
}
} // namespace android