[Sysman] Replace normal pointers with smart pointers (10/n)

Replacing normal pointers by smart pointers in fan module of L0 sysman.

Related-To: LOCI-2810

Signed-off-by: Singh, Prasoon <prasoon.singh@intel.com>
This commit is contained in:
Singh, Prasoon
2023-04-05 07:21:42 +00:00
committed by Compute-Runtime-Automation
parent c927c46495
commit 71fe65b327
8 changed files with 20 additions and 32 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2020-2022 Intel Corporation
* Copyright (C) 2020-2023 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -13,18 +13,12 @@
namespace L0 {
FanHandleContext::~FanHandleContext() {
for (Fan *pFan : handleList) {
delete pFan;
}
}
FanHandleContext::~FanHandleContext() = default;
void FanHandleContext::init() {
Fan *pFan = new FanImp(pOsSysman);
std::unique_ptr<Fan> pFan = std::make_unique<FanImp>(pOsSysman);
if (pFan->initSuccess == true) {
handleList.push_back(pFan);
} else {
delete pFan;
handleList.push_back(std::move(pFan));
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2020-2022 Intel Corporation
* Copyright (C) 2020-2023 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -8,6 +8,7 @@
#pragma once
#include <level_zero/zes_api.h>
#include <memory>
#include <mutex>
#include <vector>
@@ -42,7 +43,7 @@ struct FanHandleContext {
ze_result_t fanGet(uint32_t *pCount, zes_fan_handle_t *phFan);
OsSysman *pOsSysman = nullptr;
std::vector<Fan *> handleList = {};
std::vector<std::unique_ptr<Fan>> handleList = {};
private:
std::once_flag initFanOnce;

View File

@@ -48,11 +48,6 @@ void FanImp::init() {
}
}
FanImp::~FanImp() {
if (nullptr != pOsFan) {
delete pOsFan;
pOsFan = nullptr;
}
}
FanImp::~FanImp() = default;
} // namespace L0

View File

@@ -25,7 +25,7 @@ class FanImp : public Fan, NEO::NonCopyableOrMovableClass {
FanImp(OsSysman *pOsSysman);
~FanImp() override;
OsFan *pOsFan = nullptr;
std::unique_ptr<OsFan> pOsFan;
void init();
};
} // namespace L0

View File

@@ -42,9 +42,9 @@ bool LinuxFanImp::isFanModuleSupported() {
LinuxFanImp::LinuxFanImp(OsSysman *pOsSysman) {
}
OsFan *OsFan::create(OsSysman *pOsSysman) {
LinuxFanImp *pLinuxFanImp = new LinuxFanImp(pOsSysman);
return static_cast<OsFan *>(pLinuxFanImp);
std::unique_ptr<OsFan> OsFan::create(OsSysman *pOsSysman) {
std::unique_ptr<LinuxFanImp> pLinuxFanImp = std::make_unique<LinuxFanImp>(pOsSysman);
return pLinuxFanImp;
}
} // namespace L0

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2020 Intel Corporation
* Copyright (C) 2020-2023 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -9,6 +9,8 @@
#include <level_zero/zes_api.h>
#include <memory>
namespace L0 {
struct OsSysman;
@@ -21,7 +23,7 @@ class OsFan {
virtual ze_result_t setSpeedTableMode(const zes_fan_speed_table_t *pSpeedTable) = 0;
virtual ze_result_t getState(zes_fan_speed_units_t units, int32_t *pSpeed) = 0;
virtual bool isFanModuleSupported() = 0;
static OsFan *create(OsSysman *pOsSysman);
static std::unique_ptr<OsFan> create(OsSysman *pOsSysman);
virtual ~OsFan() = default;
};

View File

@@ -218,9 +218,9 @@ WddmFanImp::WddmFanImp(OsSysman *pOsSysman) {
pKmdSysManager = &pWddmSysmanImp->getKmdSysManager();
}
OsFan *OsFan::create(OsSysman *pOsSysman) {
WddmFanImp *pWddmFanImp = new WddmFanImp(pOsSysman);
return static_cast<OsFan *>(pWddmFanImp);
std::unique_ptr<OsFan> OsFan::create(OsSysman *pOsSysman) {
std::unique_ptr<WddmFanImp> pWddmFanImp = std::make_unique<WddmFanImp>(pOsSysman);
return pWddmFanImp;
}
} // namespace L0

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2020-2022 Intel Corporation
* Copyright (C) 2020-2023 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -36,10 +36,6 @@ class SysmanDeviceFanFixture : public SysmanDeviceFixture {
pOriginalKmdSysManager = pWddmSysmanImp->pKmdSysManager;
pWddmSysmanImp->pKmdSysManager = pKmdSysManager.get();
for (auto handle : pSysmanDeviceImp->pFanHandleContext->handleList) {
delete handle;
}
pSysmanDeviceImp->pFanHandleContext->handleList.clear();
}
void TearDown() override {