aboutsummaryrefslogtreecommitdiffstats
path: root/util/system/dynlib.h
diff options
context:
space:
mode:
authorMaxim Yurchuk <maxim-yurchuk@ydb.tech>2024-11-20 17:37:57 +0000
committerGitHub <noreply@github.com>2024-11-20 17:37:57 +0000
commitf76323e9b295c15751e51e3443aa47a36bee8023 (patch)
tree4113c8cad473a33e0f746966e0cf087252fa1d7a /util/system/dynlib.h
parent753ecb8d410a4cb459c26f3a0082fb2d1724fe63 (diff)
parenta7b9a6afea2a9d7a7bfac4c5eb4c1a8e60adb9e6 (diff)
downloadydb-f76323e9b295c15751e51e3443aa47a36bee8023.tar.gz
Merge pull request #11788 from ydb-platform/mergelibs-241120-1113
Library import 241120-1113
Diffstat (limited to 'util/system/dynlib.h')
-rw-r--r--util/system/dynlib.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/util/system/dynlib.h b/util/system/dynlib.h
index 66eaf4a5c1..03e4b3dff8 100644
--- a/util/system/dynlib.h
+++ b/util/system/dynlib.h
@@ -55,18 +55,20 @@ public:
TExternalSymbol(const TExternalSymbol& es) {
PLib = nullptr;
DLib = nullptr;
- if (es.IsDynamic())
+ if (es.IsDynamic()) {
Open(es.LibName().data(), es.VtblName().data());
- else if (es.IsStatic())
+ } else if (es.IsStatic()) {
SetSym(es.Symbol());
+ }
}
TExternalSymbol& operator=(const TExternalSymbol& es) {
if (this != &es) {
Close();
- if (es.IsDynamic())
+ if (es.IsDynamic()) {
Open(es.LibName().data(), es.VtblName().data());
- else if (es.IsStatic())
+ } else if (es.IsStatic()) {
SetSym(es.Symbol());
+ }
}
return *this;
}
@@ -75,8 +77,9 @@ public:
}
// set the symbol from dynamic source
void Open(const char* lib_name, const char* vtbl_name) {
- if (DLib != nullptr || PLib != nullptr)
+ if (DLib != nullptr || PLib != nullptr) {
return;
+ }
try {
DLib = new TDynamicLibrary();
DLib->Open(lib_name);
@@ -91,8 +94,9 @@ public:
}
// set the symbol from static source
void SetSym(TLib* pl) noexcept {
- if (DLib == nullptr && PLib == nullptr)
+ if (DLib == nullptr && PLib == nullptr) {
PLib = pl;
+ }
}
void Close() noexcept {
delete DLib;