summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author shubang <shubang@google.com> 2020-08-03 15:25:09 -0700
committer shubang <shubang@google.com> 2020-08-03 16:10:33 -0700
commitdf82804342c7dd7545344f0ece8b253cf56bbb43 (patch)
tree7d948d91827c3ed12cdc360fa296c959c87ab47d
parent96650db000a867c79f257a59c954204dc44dccc8 (diff)
Tuner JNI: Correct memcpy of C2DataIdInfo
Bug: 162778666 Test: mannual test by MTK Change-Id: Ic97717e5fc32d97837e218fe769087b5abece2cb
-rw-r--r--media/jni/android_media_tv_Tuner.cpp5
-rw-r--r--media/jni/android_media_tv_Tuner.h5
2 files changed, 6 insertions, 4 deletions
diff --git a/media/jni/android_media_tv_Tuner.cpp b/media/jni/android_media_tv_Tuner.cpp
index 3cd40818ae2a..5770c6797404 100644
--- a/media/jni/android_media_tv_Tuner.cpp
+++ b/media/jni/android_media_tv_Tuner.cpp
@@ -291,8 +291,9 @@ MQ& Dvr::getDvrMQ() {
C2DataIdInfo::C2DataIdInfo(uint32_t index, uint64_t value) : C2Param(kParamSize, index) {
CHECK(isGlobal());
CHECK_EQ(C2Param::INFO, kind());
- DummyInfo info{value};
- memcpy(this + 1, static_cast<C2Param *>(&info) + 1, kParamSize - sizeof(C2Param));
+ mInfo = StubInfo(value);
+ memcpy(static_cast<C2Param *>(this) + 1, static_cast<C2Param *>(&mInfo) + 1,
+ kParamSize - sizeof(C2Param));
}
/////////////// MediaEvent ///////////////////////
diff --git a/media/jni/android_media_tv_Tuner.h b/media/jni/android_media_tv_Tuner.h
index 83e9db796363..fd2995917475 100644
--- a/media/jni/android_media_tv_Tuner.h
+++ b/media/jni/android_media_tv_Tuner.h
@@ -250,8 +250,9 @@ class C2DataIdInfo : public C2Param {
public:
C2DataIdInfo(uint32_t index, uint64_t value);
private:
- typedef C2GlobalParam<C2Info, C2Int64Value, 0> DummyInfo;
- static const size_t kParamSize = sizeof(DummyInfo);
+ typedef C2GlobalParam<C2Info, C2Int64Value, 0> StubInfo;
+ StubInfo mInfo;
+ static const size_t kParamSize = sizeof(StubInfo);
};
} // namespace android