mirror of
https://github.com/mackron/miniaudio.git
synced 2026-04-24 01:04:02 +02:00
JACK: Minor memory allocation optimization.
This commit is contained in:
+15
-9
@@ -32629,17 +32629,31 @@ static ma_result ma_context_init__jack(ma_context* pContext, const void* pContex
|
|||||||
const ma_context_config_jack* pContextConfigJACK = (const ma_context_config_jack*)pContextBackendConfig;
|
const ma_context_config_jack* pContextConfigJACK = (const ma_context_config_jack*)pContextBackendConfig;
|
||||||
ma_context_config_jack defaultConfigJACK;
|
ma_context_config_jack defaultConfigJACK;
|
||||||
ma_log* pLog = ma_context_get_log(pContext);
|
ma_log* pLog = ma_context_get_log(pContext);
|
||||||
|
size_t clientNameSize;
|
||||||
|
|
||||||
if (pContextConfigJACK == NULL) {
|
if (pContextConfigJACK == NULL) {
|
||||||
defaultConfigJACK = ma_context_config_jack_init();
|
defaultConfigJACK = ma_context_config_jack_init();
|
||||||
pContextConfigJACK = &defaultConfigJACK;
|
pContextConfigJACK = &defaultConfigJACK;
|
||||||
}
|
}
|
||||||
|
|
||||||
pContextStateJACK = (ma_context_state_jack*)ma_calloc(sizeof(*pContextStateJACK), ma_context_get_allocation_callbacks(pContext));
|
if (pContextConfigJACK->pClientName != NULL) {
|
||||||
|
clientNameSize = strlen(pContextConfigJACK->pClientName) + 1;
|
||||||
|
} else {
|
||||||
|
clientNameSize = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pContextStateJACK = (ma_context_state_jack*)ma_calloc(ma_align_64(sizeof(*pContextStateJACK) + clientNameSize), ma_context_get_allocation_callbacks(pContext));
|
||||||
if (pContextStateJACK == NULL) {
|
if (pContextStateJACK == NULL) {
|
||||||
return MA_OUT_OF_MEMORY;
|
return MA_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pContextConfigJACK->pClientName != NULL) {
|
||||||
|
pContextStateJACK->pClientName = (char*)ma_offset_ptr(pContextStateJACK, ma_align_64(sizeof(*pContextStateJACK)));
|
||||||
|
ma_strcpy_s(pContextStateJACK->pClientName, clientNameSize, pContextConfigJACK->pClientName);
|
||||||
|
} else {
|
||||||
|
pContextStateJACK->pClientName = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef MA_NO_RUNTIME_LINKING
|
#ifndef MA_NO_RUNTIME_LINKING
|
||||||
{
|
{
|
||||||
const char* libjackNames[] = {
|
const char* libjackNames[] = {
|
||||||
@@ -32726,10 +32740,6 @@ static ma_result ma_context_init__jack(ma_context* pContext, const void* pContex
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (pContextConfigJACK->pClientName != NULL) {
|
|
||||||
pContextStateJACK->pClientName = ma_copy_string(pContextConfigJACK->pClientName, ma_context_get_allocation_callbacks(pContext));
|
|
||||||
}
|
|
||||||
|
|
||||||
pContextStateJACK->tryStartServer = pContextConfigJACK->tryStartServer;
|
pContextStateJACK->tryStartServer = pContextConfigJACK->tryStartServer;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -32740,7 +32750,6 @@ static ma_result ma_context_init__jack(ma_context* pContext, const void* pContex
|
|||||||
ma_jack_client_t* pDummyClient;
|
ma_jack_client_t* pDummyClient;
|
||||||
ma_result result = ma_context_open_client__jack(pContextStateJACK, &pDummyClient);
|
ma_result result = ma_context_open_client__jack(pContextStateJACK, &pDummyClient);
|
||||||
if (result != MA_SUCCESS) {
|
if (result != MA_SUCCESS) {
|
||||||
ma_free(pContextStateJACK->pClientName, ma_context_get_allocation_callbacks(pContext));
|
|
||||||
#ifndef MA_NO_RUNTIME_LINKING
|
#ifndef MA_NO_RUNTIME_LINKING
|
||||||
{
|
{
|
||||||
ma_dlclose(pLog, pContextStateJACK->jackSO);
|
ma_dlclose(pLog, pContextStateJACK->jackSO);
|
||||||
@@ -32765,9 +32774,6 @@ static void ma_context_uninit__jack(ma_context* pContext)
|
|||||||
|
|
||||||
MA_ASSERT(pContextStateJACK != NULL);
|
MA_ASSERT(pContextStateJACK != NULL);
|
||||||
|
|
||||||
ma_free(pContextStateJACK->pClientName, ma_context_get_allocation_callbacks(pContext));
|
|
||||||
pContextStateJACK->pClientName = NULL;
|
|
||||||
|
|
||||||
#ifndef MA_NO_RUNTIME_LINKING
|
#ifndef MA_NO_RUNTIME_LINKING
|
||||||
{
|
{
|
||||||
ma_dlclose(ma_context_get_log(pContext), pContextStateJACK->jackSO);
|
ma_dlclose(ma_context_get_log(pContext), pContextStateJACK->jackSO);
|
||||||
|
|||||||
Reference in New Issue
Block a user