summaryrefslogtreecommitdiff
path: root/services/powermanager/WorkSource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'services/powermanager/WorkSource.cpp')
-rw-r--r--services/powermanager/WorkSource.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/services/powermanager/WorkSource.cpp b/services/powermanager/WorkSource.cpp
index 1006a0666f..64a5499084 100644
--- a/services/powermanager/WorkSource.cpp
+++ b/services/powermanager/WorkSource.cpp
@@ -28,9 +28,16 @@ status_t WorkSource::readFromParcel(const android::Parcel *parcel) {
return BAD_VALUE;
}
int32_t num;
+ int32_t workChainCount;
status_t ret = parcel->readInt32(&num)
?: parcel->readInt32Vector(&mUids)
- ?: parcel->readString16Vector(&mNames);
+ ?: parcel->readString16Vector(&mNames)
+ ?: parcel->readInt32(&workChainCount);
+
+ if (ret == OK && workChainCount > 0) {
+ // We don't yet support WorkChains in native WorkSources.
+ return BAD_VALUE;
+ }
return ret;
}
@@ -43,7 +50,8 @@ status_t WorkSource::writeToParcel(android::Parcel *parcel) const {
return parcel->writeInt32(mUids.size())
?: parcel->writeInt32Vector(mUids)
- ?: parcel->writeString16Vector(mNames);
+ ?: parcel->writeString16Vector(mNames)
+ ?: parcel->writeInt32(-1);
}
} // namespace android::os