[nodiscard] fix all InitOnceExecuteOnce usages

This commit is contained in:
Armin Novak
2026-02-26 23:18:14 +01:00
parent 5e18b0149a
commit ea77d2d922
24 changed files with 295 additions and 404 deletions

View File

@@ -678,7 +678,8 @@ static BOOL h264_context_init(H264_CONTEXT* h264)
return FALSE;
h264->subsystem = nullptr;
InitOnceExecuteOnce(&subsystems_once, h264_register_subsystems, nullptr, nullptr);
if (!InitOnceExecuteOnce(&subsystems_once, h264_register_subsystems, nullptr, nullptr))
return FALSE;
for (size_t i = 0; i < MAX_SUBSYSTEMS; i++)
{

View File

@@ -172,7 +172,8 @@ int rfx_rlgr_decode(RLGR_MODE mode, const BYTE* WINPR_RESTRICT pSrcData, UINT32
wBitStream s_bs = WINPR_C_ARRAY_INIT;
const SSIZE_T DstSize = rDstSize;
InitOnceExecuteOnce(&rfx_rlgr_init_once, rfx_rlgr_init, nullptr, nullptr);
if (!InitOnceExecuteOnce(&rfx_rlgr_init_once, rfx_rlgr_init, nullptr, nullptr))
return -1;
k = 1;
kp = k << LSGR;

View File

@@ -154,6 +154,9 @@ static void* channel_event_entry_clone(const void* data)
rdpChannels* freerdp_channels_new(freerdp* instance)
{
if (!InitOnceExecuteOnce(&g_ChannelHandlesOnce, init_channel_handles_table, nullptr, nullptr))
return nullptr;
wObject* obj = nullptr;
rdpChannels* channels = nullptr;
channels = (rdpChannels*)calloc(1, sizeof(rdpChannels));
@@ -161,8 +164,6 @@ rdpChannels* freerdp_channels_new(freerdp* instance)
if (!channels)
return nullptr;
InitOnceExecuteOnce(&g_ChannelHandlesOnce, init_channel_handles_table, nullptr, nullptr);
if (!g_ChannelHandles)
goto error;
if (!InitializeCriticalSectionAndSpinCount(&channels->channelsLock, 4000))

View File

@@ -829,7 +829,8 @@ static BOOL tls_prepare(rdpTls* tls, BIO* underlying, SSL_METHOD* method, int op
if (settings->TlsSecretsFile)
{
#if OPENSSL_VERSION_NUMBER >= 0x10101000L
InitOnceExecuteOnce(&secrets_file_idx_once, secrets_file_init_cb, nullptr, nullptr);
if (!InitOnceExecuteOnce(&secrets_file_idx_once, secrets_file_init_cb, nullptr, nullptr))
return FALSE;
if (secrets_file_idx != -1)
{

View File

@@ -156,7 +156,8 @@ static BOOL scard_status_transition(SCardContext* context)
memcpy(reader->rgbAtr, ATR, sizeof(ATR));
}
{
InitOnceExecuteOnce(&g_ReaderNameWGuard, g_ReaderNameWInit, nullptr, nullptr);
if (!InitOnceExecuteOnce(&g_ReaderNameWGuard, g_ReaderNameWInit, nullptr, nullptr))
return FALSE;
SCARD_READERSTATEW* reader = &context->readerStateW[0];
reader->szReader = g_ReaderNameW;
reader->dwEventState = SCARD_STATE_PRESENT;
@@ -564,7 +565,8 @@ LONG WINAPI Emulate_SCardListReadersW(SmartcardEmulationContext* smartcard, SCAR
WINPR_UNUSED(mszGroups); /* Not required */
InitOnceExecuteOnce(&g_ReaderNameWGuard, g_ReaderNameWInit, nullptr, nullptr);
if (!InitOnceExecuteOnce(&g_ReaderNameWGuard, g_ReaderNameWInit, nullptr, nullptr))
return FALSE;
if (SCARD_S_SUCCESS == status)
{
SCardContext* value = HashTable_GetItemValue(smartcard->contexts, (const void*)hContext);

View File

@@ -1274,8 +1274,7 @@ end:
static BOOL load_layout_file(void)
{
static INIT_ONCE once = INIT_ONCE_STATIC_INIT;
InitOnceExecuteOnce(&once, load_layouts, nullptr, nullptr);
return TRUE;
return InitOnceExecuteOnce(&once, load_layouts, nullptr, nullptr);
}
#endif

View File

@@ -360,14 +360,19 @@ void primitives_uninit(void)
/* ------------------------------------------------------------------------- */
static void setup(void)
{
InitOnceExecuteOnce(&generic_primitives_InitOnce, primitives_init_generic_cb, nullptr, nullptr);
if (!InitOnceExecuteOnce(&generic_primitives_InitOnce, primitives_init_generic_cb, nullptr,
nullptr))
return;
#if defined(HAVE_CPU_OPTIMIZED_PRIMITIVES)
InitOnceExecuteOnce(&cpu_primitives_InitOnce, primitives_init_cpu_cb, nullptr, nullptr);
if (!InitOnceExecuteOnce(&cpu_primitives_InitOnce, primitives_init_cpu_cb, nullptr, nullptr))
return;
#endif
#if defined(WITH_OPENCL)
InitOnceExecuteOnce(&gpu_primitives_InitOnce, primitives_init_gpu_cb, nullptr, nullptr);
if (!InitOnceExecuteOnce(&gpu_primitives_InitOnce, primitives_init_gpu_cb, nullptr, nullptr))
return;
#endif
InitOnceExecuteOnce(&auto_primitives_InitOnce, primitives_auto_init_cb, nullptr, nullptr);
if (!InitOnceExecuteOnce(&auto_primitives_InitOnce, primitives_auto_init_cb, nullptr, nullptr))
return;
}
primitives_t* primitives_get(void)
@@ -378,13 +383,17 @@ primitives_t* primitives_get(void)
primitives_t* primitives_get_generic(void)
{
InitOnceExecuteOnce(&generic_primitives_InitOnce, primitives_init_generic_cb, nullptr, nullptr);
if (!InitOnceExecuteOnce(&generic_primitives_InitOnce, primitives_init_generic_cb, nullptr,
nullptr))
return nullptr;
return &pPrimitivesGeneric;
}
primitives_t* primitives_get_by_type(primitive_hints type)
{
InitOnceExecuteOnce(&generic_primitives_InitOnce, primitives_init_generic_cb, nullptr, nullptr);
if (!InitOnceExecuteOnce(&generic_primitives_InitOnce, primitives_init_generic_cb, nullptr,
nullptr))
return nullptr;
switch (type)
{

View File

@@ -91,8 +91,7 @@ static BOOL CALLBACK init_app_details(WINPR_ATTR_UNUSED PINIT_ONCE once,
WINPR_ATTR_NODISCARD
static BOOL initializeApplicationDetails(void)
{
InitOnceExecuteOnce(&s_freerdp_app_details_once, init_app_details, nullptr, nullptr);
return TRUE;
return InitOnceExecuteOnce(&s_freerdp_app_details_once, init_app_details, nullptr, nullptr);
}
BOOL freerdp_setApplicationDetails(const char* vendor, const char* product, SSIZE_T version)