From c8457540aed1ab9424661087276fb788c0e3aabb Mon Sep 17 00:00:00 2001 From: "Wang, Pingli" Date: Wed, 23 Mar 2022 20:14:04 +0800 Subject: [PATCH] Fixes #1354 Fixes #1354. It is to fix the compiling issue for gcc12.0.1. [-Werror=address] [-Werror=dangling-pointer=][-Werror=alloc-size-larger-than=] Signed-off-by: Wang, Pingli Upstream-Status: Backport Signed-off-by: Anuj Mittal --- .../agnostic/common/os/mos_utilities.h | 4 +-- .../codec/hal/codechal_encoder_base.cpp | 2 +- .../common/codec/ddi/media_ddi_decode_vp8.cpp | 25 ++++++++----------- .../agnostic/common/os/mos_utilities_next.h | 4 +-- 4 files changed, 16 insertions(+), 19 deletions(-) diff --git a/media_common/agnostic/common/os/mos_utilities.h b/media_common/agnostic/common/os/mos_utilities.h index 7c395816f..d41a3a065 100644 --- a/media_common/agnostic/common/os/mos_utilities.h +++ b/media_common/agnostic/common/os/mos_utilities.h @@ -181,10 +181,10 @@ _Ty* MOS_NewUtil(_Types&&... _Args) template _Ty *MOS_NewArrayUtil(const char *functionName, const char *filename, - int32_t line, int32_t numElements) + int32_t line, size_t numElements) #else template -_Ty* MOS_NewArrayUtil(int32_t numElements) +_Ty* MOS_NewArrayUtil(size_t numElements) #endif { #if MOS_MESSAGES_ENABLED diff --git a/media_driver/agnostic/common/codec/hal/codechal_encoder_base.cpp b/media_driver/agnostic/common/codec/hal/codechal_encoder_base.cpp index 4bf869c60..e9b3575fd 100644 --- a/media_driver/agnostic/common/codec/hal/codechal_encoder_base.cpp +++ b/media_driver/agnostic/common/codec/hal/codechal_encoder_base.cpp @@ -3891,6 +3891,7 @@ MOS_STATUS CodechalEncoderState::ReadCounterValue(uint16_t index, EncodeStatusRe CODECHAL_ENCODE_FUNCTION_ENTER; CODECHAL_ENCODE_CHK_NULL_RETURN(encodeStatusReport); uint64_t *address2Counter = nullptr; + uint32_t ctr[4] = { 0 }; if (m_hwInterface->GetCpInterface()->IsHwCounterIncrement(m_osInterface)) { @@ -3923,7 +3924,6 @@ MOS_STATUS CodechalEncoderState::ReadCounterValue(uint16_t index, EncodeStatusRe else { //Report driver generated counter which was submitted to HW by command - uint32_t ctr[4] = { 0 }; eStatus = m_hwInterface->GetCpInterface()->GetCounterValue(ctr); if (MOS_STATUS_SUCCESS == eStatus) { diff --git a/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp b/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp index 72891d584..fac4c415d 100644 --- a/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp +++ b/media_driver/linux/common/codec/ddi/media_ddi_decode_vp8.cpp @@ -235,20 +235,17 @@ VAStatus DdiDecodeVP8::ParsePicParams( codecPicParams->ucUvModeProbs[0] = picParam->uv_mode_probs[0]; codecPicParams->ucUvModeProbs[1] = picParam->uv_mode_probs[1]; codecPicParams->ucUvModeProbs[2] = picParam->uv_mode_probs[2]; - if (codecPicParams->ucMvUpdateProb[0] && picParam->mv_probs[0]) - { - MOS_SecureMemcpy(codecPicParams->ucMvUpdateProb[0], - sizeof(codecPicParams->ucMvUpdateProb[0]), - picParam->mv_probs[0], - sizeof(codecPicParams->ucMvUpdateProb[0])); - } - if (codecPicParams->ucMvUpdateProb[1] && picParam->mv_probs[1]) - { - MOS_SecureMemcpy(codecPicParams->ucMvUpdateProb[1], - sizeof(codecPicParams->ucMvUpdateProb[1]), - picParam->mv_probs[1], - sizeof(codecPicParams->ucMvUpdateProb[1])); - } + + MOS_SecureMemcpy(codecPicParams->ucMvUpdateProb[0], + sizeof(codecPicParams->ucMvUpdateProb[0]), + picParam->mv_probs[0], + sizeof(codecPicParams->ucMvUpdateProb[0])); + + MOS_SecureMemcpy(codecPicParams->ucMvUpdateProb[1], + sizeof(codecPicParams->ucMvUpdateProb[1]), + picParam->mv_probs[1], + sizeof(codecPicParams->ucMvUpdateProb[1])); + codecPicParams->ucP0EntropyCount = (8 - picParam->bool_coder_ctx.count) & 0x7; //hardware needs used bits not remaining bits in bool decoder codecPicParams->ucP0EntropyValue = picParam->bool_coder_ctx.value; codecPicParams->uiP0EntropyRange = picParam->bool_coder_ctx.range; diff --git a/media_softlet/agnostic/common/os/mos_utilities_next.h b/media_softlet/agnostic/common/os/mos_utilities_next.h index 509f2de3d..b6069bbc8 100644 --- a/media_softlet/agnostic/common/os/mos_utilities_next.h +++ b/media_softlet/agnostic/common/os/mos_utilities_next.h @@ -90,10 +90,10 @@ class MosUtilities template static _Ty *MosNewArrayUtil(const char *functionName, const char *filename, - int32_t line, int32_t numElements) + int32_t line, size_t numElements) #else template - static _Ty* MosNewArrayUtil(int32_t numElements) + static _Ty* MosNewArrayUtil(size_t numElements) #endif { #if (_DEBUG || _RELEASE_INTERNAL)