summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Siarhei Vishniakou <svv@google.com> 2023-10-23 07:22:01 -0700
committer Siarhei Vishniakou <svv@google.com> 2023-10-24 07:19:10 -0700
commitc62948ec5d29035a930c174f2105e8c76581629a (patch)
treeb245fb0a9e70cac723d8f21d9242e7fd2eddc1c4
parenta5ac1e549a5439470971536015aa286eb0e293e3 (diff)
Return unique_ptr from readFromParcel
When KeyCharacterMap is read from parcel, there's no need to force the caller to store the object in a shared pointer. We can return a unique_ptr first, and let the caller decide on how exactly that lifetime should be managed. Bug: 274058082 Test: presubmit Change-Id: I8c5ec1e32a9304f6ad186bc0279f4c7bcbab77d8
-rw-r--r--include/input/KeyCharacterMap.h2
-rw-r--r--libs/input/KeyCharacterMap.cpp6
2 files changed, 4 insertions, 4 deletions
diff --git a/include/input/KeyCharacterMap.h b/include/input/KeyCharacterMap.h
index b2e8baade3..dfcf766402 100644
--- a/include/input/KeyCharacterMap.h
+++ b/include/input/KeyCharacterMap.h
@@ -146,7 +146,7 @@ public:
#ifdef __linux__
/* Reads a key map from a parcel. */
- static std::shared_ptr<KeyCharacterMap> readFromParcel(Parcel* parcel);
+ static std::unique_ptr<KeyCharacterMap> readFromParcel(Parcel* parcel);
/* Writes a key map to a parcel. */
void writeToParcel(Parcel* parcel) const;
diff --git a/libs/input/KeyCharacterMap.cpp b/libs/input/KeyCharacterMap.cpp
index a4cd239a92..e2feabcbbe 100644
--- a/libs/input/KeyCharacterMap.cpp
+++ b/libs/input/KeyCharacterMap.cpp
@@ -613,14 +613,14 @@ void KeyCharacterMap::addLockedMetaKey(Vector<KeyEvent>& outEvents,
}
#ifdef __linux__
-std::shared_ptr<KeyCharacterMap> KeyCharacterMap::readFromParcel(Parcel* parcel) {
+std::unique_ptr<KeyCharacterMap> KeyCharacterMap::readFromParcel(Parcel* parcel) {
if (parcel == nullptr) {
ALOGE("%s: Null parcel", __func__);
return nullptr;
}
std::string loadFileName = parcel->readCString();
- std::shared_ptr<KeyCharacterMap> map =
- std::shared_ptr<KeyCharacterMap>(new KeyCharacterMap(loadFileName));
+ std::unique_ptr<KeyCharacterMap> map =
+ std::make_unique<KeyCharacterMap>(KeyCharacterMap(loadFileName));
map->mType = static_cast<KeyCharacterMap::KeyboardType>(parcel->readInt32());
map->mLayoutOverlayApplied = parcel->readBool();
size_t numKeys = parcel->readInt32();