Replace non-const references by pointers
Use pointers for outputs to be consistent with the rest of
libui/libsurfaceflinger.
Remove assignFromHidlVec now that hidl_vec can be casted to std::vector.
Test: builds and boots
Change-Id: I656367028302e7b877a766eaf6aa2431fe07643b
diff --git a/services/surfaceflinger/DisplayHardware/ComposerHal.cpp b/services/surfaceflinger/DisplayHardware/ComposerHal.cpp
index 63fd1e8..3555075 100644
--- a/services/surfaceflinger/DisplayHardware/ComposerHal.cpp
+++ b/services/surfaceflinger/DisplayHardware/ComposerHal.cpp
@@ -100,13 +100,6 @@
return unwrapRet(ret, kDefaultError);
}
-template<typename T>
-void assignFromHidlVec(std::vector<T>& vec, const hidl_vec<T>& data)
-{
- vec.clear();
- vec.insert(vec.begin(), &data[0], &data[data.size()]);
-}
-
} // anonymous namespace
Composer::Composer()
@@ -134,7 +127,7 @@
std::vector<IComposer::Capability> capabilities;
mComposer->getCapabilities(
[&](const auto& tmpCapabilities) {
- assignFromHidlVec(capabilities, tmpCapabilities);
+ capabilities = tmpCapabilities;
});
return capabilities;
@@ -165,11 +158,11 @@
}
Error Composer::createVirtualDisplay(uint32_t width, uint32_t height,
- PixelFormat& format, Display& display)
+ PixelFormat* format, Display* outDisplay)
{
const uint32_t bufferSlotCount = 1;
Error error = kDefaultError;
- mClient->createVirtualDisplay(width, height, format, bufferSlotCount,
+ mClient->createVirtualDisplay(width, height, *format, bufferSlotCount,
[&](const auto& tmpError, const auto& tmpDisplay,
const auto& tmpFormat) {
error = tmpError;
@@ -177,8 +170,8 @@
return;
}
- display = tmpDisplay;
- format = tmpFormat;
+ *outDisplay = tmpDisplay;
+ *format = tmpFormat;
});
return error;
@@ -197,7 +190,7 @@
return Error::NONE;
}
-Error Composer::createLayer(Display display, Layer& layer)
+Error Composer::createLayer(Display display, Layer* outLayer)
{
const uint32_t bufferSlotCount = 1;
Error error = kDefaultError;
@@ -208,7 +201,7 @@
return;
}
- layer = tmpLayer;
+ *outLayer = tmpLayer;
});
return error;
@@ -220,7 +213,7 @@
return unwrapRet(ret);
}
-Error Composer::getActiveConfig(Display display, Config& config)
+Error Composer::getActiveConfig(Display display, Config* outConfig)
{
Error error = kDefaultError;
mClient->getActiveConfig(display,
@@ -230,22 +223,22 @@
return;
}
- config = tmpConfig;
+ *outConfig = tmpConfig;
});
return error;
}
Error Composer::getChangedCompositionTypes(Display display,
- std::vector<Layer>& layers,
- std::vector<IComposerClient::Composition>& types)
+ std::vector<Layer>* outLayers,
+ std::vector<IComposerClient::Composition>* outTypes)
{
- mReader.takeChangedCompositionTypes(display, layers, types);
+ mReader.takeChangedCompositionTypes(display, outLayers, outTypes);
return Error::NONE;
}
Error Composer::getColorModes(Display display,
- std::vector<ColorMode>& modes)
+ std::vector<ColorMode>* outModes)
{
Error error = kDefaultError;
mClient->getColorModes(display,
@@ -255,14 +248,14 @@
return;
}
- assignFromHidlVec(modes, tmpModes);
+ *outModes = tmpModes;
});
return error;
}
Error Composer::getDisplayAttribute(Display display, Config config,
- IComposerClient::Attribute attribute, int32_t& value)
+ IComposerClient::Attribute attribute, int32_t* outValue)
{
Error error = kDefaultError;
mClient->getDisplayAttribute(display, config, attribute,
@@ -272,14 +265,14 @@
return;
}
- value = tmpValue;
+ *outValue = tmpValue;
});
return error;
}
Error Composer::getDisplayConfigs(Display display,
- std::vector<Config>& configs)
+ std::vector<Config>* outConfigs)
{
Error error = kDefaultError;
mClient->getDisplayConfigs(display,
@@ -289,13 +282,13 @@
return;
}
- assignFromHidlVec(configs, tmpConfigs);
+ *outConfigs = tmpConfigs;
});
return error;
}
-Error Composer::getDisplayName(Display display, std::string& name)
+Error Composer::getDisplayName(Display display, std::string* outName)
{
Error error = kDefaultError;
mClient->getDisplayName(display,
@@ -305,22 +298,23 @@
return;
}
- name = tmpName.c_str();
+ *outName = tmpName.c_str();
});
return error;
}
Error Composer::getDisplayRequests(Display display,
- uint32_t& displayRequestMask, std::vector<Layer>& layers,
- std::vector<uint32_t>& layerRequestMasks)
+ uint32_t* outDisplayRequestMask, std::vector<Layer>* outLayers,
+ std::vector<uint32_t>* outLayerRequestMasks)
{
- mReader.takeDisplayRequests(display, displayRequestMask,
- layers, layerRequestMasks);
+ mReader.takeDisplayRequests(display, outDisplayRequestMask,
+ outLayers, outLayerRequestMasks);
return Error::NONE;
}
-Error Composer::getDisplayType(Display display, IComposerClient::DisplayType& type)
+Error Composer::getDisplayType(Display display,
+ IComposerClient::DisplayType* outType)
{
Error error = kDefaultError;
mClient->getDisplayType(display,
@@ -330,13 +324,13 @@
return;
}
- type = tmpType;
+ *outType = tmpType;
});
return error;
}
-Error Composer::getDozeSupport(Display display, bool& support)
+Error Composer::getDozeSupport(Display display, bool* outSupport)
{
Error error = kDefaultError;
mClient->getDozeSupport(display,
@@ -346,15 +340,15 @@
return;
}
- support = tmpSupport;
+ *outSupport = tmpSupport;
});
return error;
}
-Error Composer::getHdrCapabilities(Display display, std::vector<Hdr>& types,
- float& maxLuminance, float& maxAverageLuminance,
- float& minLuminance)
+Error Composer::getHdrCapabilities(Display display,
+ std::vector<Hdr>* outTypes, float* outMaxLuminance,
+ float* outMaxAverageLuminance, float* outMinLuminance)
{
Error error = kDefaultError;
mClient->getHdrCapabilities(display,
@@ -367,23 +361,23 @@
return;
}
- assignFromHidlVec(types, tmpTypes);
- maxLuminance = tmpMaxLuminance;
- maxAverageLuminance = tmpMaxAverageLuminance;
- minLuminance = tmpMinLuminance;
+ *outTypes = tmpTypes;
+ *outMaxLuminance = tmpMaxLuminance;
+ *outMaxAverageLuminance = tmpMaxAverageLuminance;
+ *outMinLuminance = tmpMinLuminance;
});
return error;
}
-Error Composer::getReleaseFences(Display display, std::vector<Layer>& layers,
- std::vector<int>& releaseFences)
+Error Composer::getReleaseFences(Display display,
+ std::vector<Layer>* outLayers, std::vector<int>* outReleaseFences)
{
- mReader.takeReleaseFences(display, layers, releaseFences);
+ mReader.takeReleaseFences(display, outLayers, outReleaseFences);
return Error::NONE;
}
-Error Composer::presentDisplay(Display display, int& presentFence)
+Error Composer::presentDisplay(Display display, int* outPresentFence)
{
mWriter.selectDisplay(display);
mWriter.presentDisplay();
@@ -393,7 +387,7 @@
return error;
}
- mReader.takePresentFence(display, presentFence);
+ mReader.takePresentFence(display, outPresentFence);
return Error::NONE;
}
@@ -454,8 +448,8 @@
return unwrapRet(ret);
}
-Error Composer::validateDisplay(Display display, uint32_t& numTypes,
- uint32_t& numRequests)
+Error Composer::validateDisplay(Display display, uint32_t* outNumTypes,
+ uint32_t* outNumRequests)
{
mWriter.selectDisplay(display);
mWriter.validateDisplay();
@@ -465,7 +459,7 @@
return error;
}
- mReader.hasChanges(display, numTypes, numRequests);
+ mReader.hasChanges(display, outNumTypes, outNumRequests);
return Error::NONE;
}
@@ -601,7 +595,7 @@
bool queueChanged = false;
uint32_t commandLength = 0;
hidl_vec<hidl_handle> commandHandles;
- if (!mWriter.writeQueue(queueChanged, commandLength, commandHandles)) {
+ if (!mWriter.writeQueue(&queueChanged, &commandLength, &commandHandles)) {
mWriter.reset();
return Error::NO_RESOURCES;
}
@@ -686,7 +680,7 @@
uint16_t length = 0;
while (!isEmpty()) {
- if (!beginCommand(command, length)) {
+ if (!beginCommand(&command, &length)) {
break;
}
@@ -863,87 +857,87 @@
}
bool CommandReader::hasChanges(Display display,
- uint32_t& numChangedCompositionTypes,
- uint32_t& numLayerRequestMasks) const
+ uint32_t* outNumChangedCompositionTypes,
+ uint32_t* outNumLayerRequestMasks) const
{
auto found = mReturnData.find(display);
if (found == mReturnData.end()) {
- numChangedCompositionTypes = 0;
- numLayerRequestMasks = 0;
+ *outNumChangedCompositionTypes = 0;
+ *outNumLayerRequestMasks = 0;
return false;
}
const ReturnData& data = found->second;
- numChangedCompositionTypes = data.compositionTypes.size();
- numLayerRequestMasks = data.requestMasks.size();
+ *outNumChangedCompositionTypes = data.compositionTypes.size();
+ *outNumLayerRequestMasks = data.requestMasks.size();
return !(data.compositionTypes.empty() && data.requestMasks.empty());
}
void CommandReader::takeChangedCompositionTypes(Display display,
- std::vector<Layer>& layers,
- std::vector<IComposerClient::Composition>& types)
+ std::vector<Layer>* outLayers,
+ std::vector<IComposerClient::Composition>* outTypes)
{
auto found = mReturnData.find(display);
if (found == mReturnData.end()) {
- layers.clear();
- types.clear();
+ outLayers->clear();
+ outTypes->clear();
return;
}
ReturnData& data = found->second;
- layers = std::move(data.changedLayers);
- types = std::move(data.compositionTypes);
+ *outLayers = std::move(data.changedLayers);
+ *outTypes = std::move(data.compositionTypes);
}
void CommandReader::takeDisplayRequests(Display display,
- uint32_t& displayRequestMask, std::vector<Layer>& layers,
- std::vector<uint32_t>& layerRequestMasks)
+ uint32_t* outDisplayRequestMask, std::vector<Layer>* outLayers,
+ std::vector<uint32_t>* outLayerRequestMasks)
{
auto found = mReturnData.find(display);
if (found == mReturnData.end()) {
- displayRequestMask = 0;
- layers.clear();
- layerRequestMasks.clear();
+ *outDisplayRequestMask = 0;
+ outLayers->clear();
+ outLayerRequestMasks->clear();
return;
}
ReturnData& data = found->second;
- displayRequestMask = data.displayRequests;
- layers = std::move(data.requestedLayers);
- layerRequestMasks = std::move(data.requestMasks);
+ *outDisplayRequestMask = data.displayRequests;
+ *outLayers = std::move(data.requestedLayers);
+ *outLayerRequestMasks = std::move(data.requestMasks);
}
void CommandReader::takeReleaseFences(Display display,
- std::vector<Layer>& layers, std::vector<int>& releaseFences)
+ std::vector<Layer>* outLayers, std::vector<int>* outReleaseFences)
{
auto found = mReturnData.find(display);
if (found == mReturnData.end()) {
- layers.clear();
- releaseFences.clear();
+ outLayers->clear();
+ outReleaseFences->clear();
return;
}
ReturnData& data = found->second;
- layers = std::move(data.releasedLayers);
- releaseFences = std::move(data.releaseFences);
+ *outLayers = std::move(data.releasedLayers);
+ *outReleaseFences = std::move(data.releaseFences);
}
-void CommandReader::takePresentFence(Display display, int& presentFence)
+void CommandReader::takePresentFence(Display display, int* outPresentFence)
{
auto found = mReturnData.find(display);
if (found == mReturnData.end()) {
- presentFence = -1;
+ *outPresentFence = -1;
return;
}
ReturnData& data = found->second;
- presentFence = data.presentFence;
+ *outPresentFence = data.presentFence;
data.presentFence = -1;
}