diff --git a/services/screenservice/sinkservice/screenregionmgr/2.0/src/screenregion.cpp b/services/screenservice/sinkservice/screenregionmgr/2.0/src/screenregion.cpp index 67054c74c284b2587563d6acd78d949e17d08e14..410fcb0b85764f3c64c05ecb1dfe87e7cee8bf38 100644 --- a/services/screenservice/sinkservice/screenregionmgr/2.0/src/screenregion.cpp +++ b/services/screenservice/sinkservice/screenregionmgr/2.0/src/screenregion.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. + * Copyright (c) 2022-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -276,7 +276,21 @@ void ScreenRegion::OnEngineMessage(const std::shared_ptr &messag void ScreenRegion::GetWSBuffer(sptr &wsBuffer, const std::shared_ptr &buffer) { + if ((wsBuffer == nullptr) || (buffer == nullptr)) { + DHLOGE("wsBuffer or buffer is nullptr."); + return; + } + + if ((videoParam_ == nullptr) || (windowSurface_ == nullptr)) { + DHLOGE("videoParam or windowSurface is nullptr."); + return; + } + auto bufferData = buffer->GetBufferData(0); + if (bufferData == nullptr) { + DHLOGE("bufferData is null."); + return; + } auto bufferAddr = bufferData->GetAddress(); auto wsBufAddr = static_cast(wsBuffer->GetVirAddr()); uint32_t wsBufSize = wsBuffer->GetSize();