Commit e679602a authored by David Reid's avatar David Reid

Abandon the allocation type idea.

This might come back later, but for now this is no longer a thing.
parent 2bad69ac
...@@ -11289,14 +11289,14 @@ static ma_result ma_event_alloc_and_init(ma_event** ppEvent, ma_allocation_callb ...@@ -11289,14 +11289,14 @@ static ma_result ma_event_alloc_and_init(ma_event** ppEvent, ma_allocation_callb
*ppEvent = NULL; *ppEvent = NULL;
pEvent = ma_malloc(sizeof(*pEvent), pAllocationCallbacks/*, MA_ALLOCATION_TYPE_EVENT*/); pEvent = ma_malloc(sizeof(*pEvent), pAllocationCallbacks);
if (pEvent == NULL) { if (pEvent == NULL) {
return MA_OUT_OF_MEMORY; return MA_OUT_OF_MEMORY;
} }
result = ma_event_init(pEvent); result = ma_event_init(pEvent);
if (result != MA_SUCCESS) { if (result != MA_SUCCESS) {
ma_free(pEvent, pAllocationCallbacks/*, MA_ALLOCATION_TYPE_EVENT*/); ma_free(pEvent, pAllocationCallbacks);
return result; return result;
} }
...@@ -11327,7 +11327,7 @@ static void ma_event_uninit_and_free(ma_event* pEvent, ma_allocation_callbacks* ...@@ -11327,7 +11327,7 @@ static void ma_event_uninit_and_free(ma_event* pEvent, ma_allocation_callbacks*
} }
ma_event_uninit(pEvent); ma_event_uninit(pEvent);
ma_free(pEvent, pAllocationCallbacks/*, MA_ALLOCATION_TYPE_EVENT*/); ma_free(pEvent, pAllocationCallbacks);
} }
#endif #endif
...@@ -20896,7 +20896,7 @@ static ma_result ma_device_init_by_type__alsa(ma_device* pDevice, const ma_devic ...@@ -20896,7 +20896,7 @@ static ma_result ma_device_init_by_type__alsa(ma_device* pDevice, const ma_devic
return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to retrieve poll descriptors count.", MA_ERROR); return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to retrieve poll descriptors count.", MA_ERROR);
} }
pPollDescriptors = (struct pollfd*)ma_malloc(sizeof(*pPollDescriptors) * (pollDescriptorCount + 1), &pDevice->pContext->allocationCallbacks/*, MA_ALLOCATION_TYPE_GENERAL*/); /* +1 because we want room for the wakeup descriptor. */ pPollDescriptors = (struct pollfd*)ma_malloc(sizeof(*pPollDescriptors) * (pollDescriptorCount + 1), &pDevice->pContext->allocationCallbacks); /* +1 because we want room for the wakeup descriptor. */
if (pPollDescriptors == NULL) { if (pPollDescriptors == NULL) {
((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM); ((ma_snd_pcm_close_proc)pDevice->pContext->alsa.snd_pcm_close)(pPCM);
return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to allocate memory for poll descriptors.", MA_OUT_OF_MEMORY); return ma_post_error(pDevice, MA_LOG_LEVEL_ERROR, "[ALSA] Failed to allocate memory for poll descriptors.", MA_OUT_OF_MEMORY);
...@@ -44823,7 +44823,7 @@ MA_API ma_result ma_vfs_info(ma_vfs* pVFS, ma_vfs_file file, ma_file_info* pInfo ...@@ -44823,7 +44823,7 @@ MA_API ma_result ma_vfs_info(ma_vfs* pVFS, ma_vfs_file file, ma_file_info* pInfo
} }
static ma_result ma_vfs_open_and_read_file_ex(ma_vfs* pVFS, const char* pFilePath, const wchar_t* pFilePathW, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks, ma_uint32 allocationType) static ma_result ma_vfs_open_and_read_file_ex(ma_vfs* pVFS, const char* pFilePath, const wchar_t* pFilePathW, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks)
{ {
ma_result result; ma_result result;
ma_vfs_file file; ma_vfs_file file;
...@@ -44831,8 +44831,6 @@ static ma_result ma_vfs_open_and_read_file_ex(ma_vfs* pVFS, const char* pFilePat ...@@ -44831,8 +44831,6 @@ static ma_result ma_vfs_open_and_read_file_ex(ma_vfs* pVFS, const char* pFilePat
void* pData; void* pData;
size_t bytesRead; size_t bytesRead;
(void)allocationType;
if (ppData != NULL) { if (ppData != NULL) {
*ppData = NULL; *ppData = NULL;
} }
...@@ -44890,12 +44888,12 @@ static ma_result ma_vfs_open_and_read_file_ex(ma_vfs* pVFS, const char* pFilePat ...@@ -44890,12 +44888,12 @@ static ma_result ma_vfs_open_and_read_file_ex(ma_vfs* pVFS, const char* pFilePat
MA_API ma_result ma_vfs_open_and_read_file(ma_vfs* pVFS, const char* pFilePath, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks) MA_API ma_result ma_vfs_open_and_read_file(ma_vfs* pVFS, const char* pFilePath, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks)
{ {
return ma_vfs_open_and_read_file_ex(pVFS, pFilePath, NULL, ppData, pSize, pAllocationCallbacks, 0 /*MA_ALLOCATION_TYPE_GENERAL*/); return ma_vfs_open_and_read_file_ex(pVFS, pFilePath, NULL, ppData, pSize, pAllocationCallbacks);
} }
MA_API ma_result ma_vfs_open_and_read_file_w(ma_vfs* pVFS, const wchar_t* pFilePath, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks) MA_API ma_result ma_vfs_open_and_read_file_w(ma_vfs* pVFS, const wchar_t* pFilePath, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks)
{ {
return ma_vfs_open_and_read_file_ex(pVFS, NULL, pFilePath, ppData, pSize, pAllocationCallbacks, 0 /*MA_ALLOCATION_TYPE_GENERAL*/); return ma_vfs_open_and_read_file_ex(pVFS, NULL, pFilePath, ppData, pSize, pAllocationCallbacks);
} }
...@@ -35,25 +35,6 @@ The best resource to use when understanding the API is the function declarations ...@@ -35,25 +35,6 @@ The best resource to use when understanding the API is the function declarations
extern "C" { extern "C" {
#endif #endif
/*
Memory Allocation Types
=======================
When allocating memory you may want to optimize your custom allocators based on what it is miniaudio is actually allocating. Normally the context in which you
are using the allocator is enough to optimize allocations, however there are high-level APIs that perform many different types of allocations and it can be
useful to be told exactly what it being allocated so you can optimize your allocations appropriately.
*/
#define MA_ALLOCATION_TYPE_GENERAL 0x00000001 /* A general memory allocation. */
#define MA_ALLOCATION_TYPE_CONTEXT 0x00000002 /* A ma_context allocation. */
#define MA_ALLOCATION_TYPE_DEVICE 0x00000003 /* A ma_device allocation. */
#define MA_ALLOCATION_TYPE_DECODER 0x00000004 /* A ma_decoder allocation. */
#define MA_ALLOCATION_TYPE_AUDIO_BUFFER 0x00000005 /* A ma_audio_buffer allocation. */
#define MA_ALLOCATION_TYPE_ENCODED_BUFFER 0x00000006 /* Allocation for encoded audio data containing the raw file data of a sound file. */
#define MA_ALLOCATION_TYPE_DECODED_BUFFER 0x00000007 /* Allocation for decoded audio data from a sound file. */
#define MA_ALLOCATION_TYPE_RESOURCE_MANAGER_DATA_BUFFER_NODE 0x00000010 /* A ma_resource_manager_data_buffer_node object. */
#define MA_ALLOCATION_TYPE_RESOURCE_MANAGER_DATA_BUFFER 0x00000011 /* A ma_resource_manager_data_buffer_node object. */
#define MA_ALLOCATION_TYPE_RESOURCE_MANAGER_DATA_STREAM 0x00000012 /* A ma_resource_manager_data_stream object. */
#define MA_ALLOCATION_TYPE_RESOURCE_MANAGER_DATA_SOURCE 0x00000013 /* A ma_resource_manager_data_source object. */
/* /*
Paged Audio Buffer Paged Audio Buffer
...@@ -7209,11 +7190,11 @@ static void ma_resource_manager_data_buffer_node_free(ma_resource_manager* pReso ...@@ -7209,11 +7190,11 @@ static void ma_resource_manager_data_buffer_node_free(ma_resource_manager* pReso
if (pDataBufferNode->isDataOwnedByResourceManager) { if (pDataBufferNode->isDataOwnedByResourceManager) {
if (ma_resource_manager_data_buffer_node_get_data_supply_type(pDataBufferNode) == ma_resource_manager_data_supply_type_encoded) { if (ma_resource_manager_data_buffer_node_get_data_supply_type(pDataBufferNode) == ma_resource_manager_data_supply_type_encoded) {
ma_free((void*)pDataBufferNode->data.encoded.pData, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_ENCODED_BUFFER*/); ma_free((void*)pDataBufferNode->data.encoded.pData, &pResourceManager->config.allocationCallbacks);
pDataBufferNode->data.encoded.pData = NULL; pDataBufferNode->data.encoded.pData = NULL;
pDataBufferNode->data.encoded.sizeInBytes = 0; pDataBufferNode->data.encoded.sizeInBytes = 0;
} else if (ma_resource_manager_data_buffer_node_get_data_supply_type(pDataBufferNode) == ma_resource_manager_data_supply_type_decoded) { } else if (ma_resource_manager_data_buffer_node_get_data_supply_type(pDataBufferNode) == ma_resource_manager_data_supply_type_decoded) {
ma_free((void*)pDataBufferNode->data.decoded.pData, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_DECODED_BUFFER*/); ma_free((void*)pDataBufferNode->data.decoded.pData, &pResourceManager->config.allocationCallbacks);
pDataBufferNode->data.decoded.pData = NULL; pDataBufferNode->data.decoded.pData = NULL;
pDataBufferNode->data.decoded.totalFrameCount = 0; pDataBufferNode->data.decoded.totalFrameCount = 0;
} else if (ma_resource_manager_data_buffer_node_get_data_supply_type(pDataBufferNode) == ma_resource_manager_data_supply_type_decoded_paged) { } else if (ma_resource_manager_data_buffer_node_get_data_supply_type(pDataBufferNode) == ma_resource_manager_data_supply_type_decoded_paged) {
...@@ -7225,7 +7206,7 @@ static void ma_resource_manager_data_buffer_node_free(ma_resource_manager* pReso ...@@ -7225,7 +7206,7 @@ static void ma_resource_manager_data_buffer_node_free(ma_resource_manager* pReso
} }
/* The data buffer itself needs to be freed. */ /* The data buffer itself needs to be freed. */
ma_free(pDataBufferNode, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_RESOURCE_MANAGER_DATA_BUFFER*/); ma_free(pDataBufferNode, &pResourceManager->config.allocationCallbacks);
} }
static ma_result ma_resource_manager_data_buffer_node_result(const ma_resource_manager_data_buffer_node* pDataBufferNode) static ma_result ma_resource_manager_data_buffer_node_result(const ma_resource_manager_data_buffer_node* pDataBufferNode)
...@@ -7713,7 +7694,7 @@ static ma_result ma_resource_manager_data_buffer_node_init_supply_encoded(ma_res ...@@ -7713,7 +7694,7 @@ static ma_result ma_resource_manager_data_buffer_node_init_supply_encoded(ma_res
MA_ASSERT(pDataBufferNode != NULL); MA_ASSERT(pDataBufferNode != NULL);
MA_ASSERT(pFilePath != NULL || pFilePathW != NULL); MA_ASSERT(pFilePath != NULL || pFilePathW != NULL);
result = ma_vfs_open_and_read_file_ex(pResourceManager->config.pVFS, pFilePath, pFilePathW, &pData, &dataSizeInBytes, &pResourceManager->config.allocationCallbacks, MA_ALLOCATION_TYPE_ENCODED_BUFFER); result = ma_vfs_open_and_read_file_ex(pResourceManager->config.pVFS, pFilePath, pFilePathW, &pData, &dataSizeInBytes, &pResourceManager->config.allocationCallbacks);
if (result != MA_SUCCESS) { if (result != MA_SUCCESS) {
if (pFilePath != NULL) { if (pFilePath != NULL) {
ma_log_postf(ma_resource_manager_get_log(pResourceManager), MA_LOG_LEVEL_WARNING, "Failed to load file \"%s\". %s.\n", pFilePath, ma_result_description(result)); ma_log_postf(ma_resource_manager_get_log(pResourceManager), MA_LOG_LEVEL_WARNING, "Failed to load file \"%s\". %s.\n", pFilePath, ma_result_description(result));
...@@ -7744,14 +7725,14 @@ static ma_result ma_resource_manager_data_buffer_node_init_supply_decoded(ma_res ...@@ -7744,14 +7725,14 @@ static ma_result ma_resource_manager_data_buffer_node_init_supply_decoded(ma_res
*ppDecoder = NULL; /* For safety. */ *ppDecoder = NULL; /* For safety. */
pDecoder = (ma_decoder*)ma_malloc(sizeof(*pDecoder), &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_DECODER*/); pDecoder = (ma_decoder*)ma_malloc(sizeof(*pDecoder), &pResourceManager->config.allocationCallbacks);
if (pDecoder == NULL) { if (pDecoder == NULL) {
return MA_OUT_OF_MEMORY; return MA_OUT_OF_MEMORY;
} }
result = ma_resource_manager__init_decoder(pResourceManager, pFilePath, pFilePathW, pDecoder); result = ma_resource_manager__init_decoder(pResourceManager, pFilePath, pFilePathW, pDecoder);
if (result != MA_SUCCESS) { if (result != MA_SUCCESS) {
ma_free(pDecoder, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_DECODER*/); ma_free(pDecoder, &pResourceManager->config.allocationCallbacks);
return result; return result;
} }
...@@ -7770,14 +7751,14 @@ static ma_result ma_resource_manager_data_buffer_node_init_supply_decoded(ma_res ...@@ -7770,14 +7751,14 @@ static ma_result ma_resource_manager_data_buffer_node_init_supply_decoded(ma_res
dataSizeInBytes = totalFrameCount * ma_get_bytes_per_frame(pDecoder->outputFormat, pDecoder->outputChannels); dataSizeInBytes = totalFrameCount * ma_get_bytes_per_frame(pDecoder->outputFormat, pDecoder->outputChannels);
if (dataSizeInBytes > MA_SIZE_MAX) { if (dataSizeInBytes > MA_SIZE_MAX) {
ma_decoder_uninit(pDecoder); ma_decoder_uninit(pDecoder);
ma_free(pDecoder, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_DECODER*/); ma_free(pDecoder, &pResourceManager->config.allocationCallbacks);
return MA_TOO_BIG; return MA_TOO_BIG;
} }
pData = ma_malloc((size_t)dataSizeInBytes, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_DECODED_BUFFER*/); pData = ma_malloc((size_t)dataSizeInBytes, &pResourceManager->config.allocationCallbacks);
if (pData == NULL) { if (pData == NULL) {
ma_decoder_uninit(pDecoder); ma_decoder_uninit(pDecoder);
ma_free(pDecoder, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_DECODER*/); ma_free(pDecoder, &pResourceManager->config.allocationCallbacks);
return MA_OUT_OF_MEMORY; return MA_OUT_OF_MEMORY;
} }
...@@ -7801,7 +7782,7 @@ static ma_result ma_resource_manager_data_buffer_node_init_supply_decoded(ma_res ...@@ -7801,7 +7782,7 @@ static ma_result ma_resource_manager_data_buffer_node_init_supply_decoded(ma_res
result = ma_paged_audio_buffer_data_init(pDecoder->outputFormat, pDecoder->outputChannels, &pDataBufferNode->data.decodedPaged.data); result = ma_paged_audio_buffer_data_init(pDecoder->outputFormat, pDecoder->outputChannels, &pDataBufferNode->data.decodedPaged.data);
if (result != MA_SUCCESS) { if (result != MA_SUCCESS) {
ma_decoder_uninit(pDecoder); ma_decoder_uninit(pDecoder);
ma_free(pDecoder, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_DECODER*/); ma_free(pDecoder, &pResourceManager->config.allocationCallbacks);
return result; return result;
} }
...@@ -7988,7 +7969,7 @@ static ma_result ma_resource_manager_data_buffer_node_acquire(ma_resource_manage ...@@ -7988,7 +7969,7 @@ static ma_result ma_resource_manager_data_buffer_node_acquire(ma_resource_manage
result = ma_resource_manager_data_buffer_node_insert_at(pResourceManager, pDataBufferNode, pInsertPoint); result = ma_resource_manager_data_buffer_node_insert_at(pResourceManager, pDataBufferNode, pInsertPoint);
if (result != MA_SUCCESS) { if (result != MA_SUCCESS) {
ma_free(pDataBufferNode, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_RESOURCE_MANAGER_DATA_BUFFER*/); ma_free(pDataBufferNode, &pResourceManager->config.allocationCallbacks);
goto early_exit; /* Should never happen. Failed to insert the data buffer into the BST. */ goto early_exit; /* Should never happen. Failed to insert the data buffer into the BST. */
} }
...@@ -8005,9 +7986,9 @@ static ma_result ma_resource_manager_data_buffer_node_acquire(ma_resource_manage ...@@ -8005,9 +7986,9 @@ static ma_result ma_resource_manager_data_buffer_node_acquire(ma_resource_manage
/* We need a copy of the file path. We should probably make this more efficient, but for now we'll do a transient memory allocation. */ /* We need a copy of the file path. We should probably make this more efficient, but for now we'll do a transient memory allocation. */
if (pFilePath != NULL) { if (pFilePath != NULL) {
pFilePathCopy = ma_copy_string(pFilePath, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_TRANSIENT_STRING*/); pFilePathCopy = ma_copy_string(pFilePath, &pResourceManager->config.allocationCallbacks);
} else { } else {
pFilePathWCopy = ma_copy_string_w(pFilePathW, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_TRANSIENT_STRING*/); pFilePathWCopy = ma_copy_string_w(pFilePathW, &pResourceManager->config.allocationCallbacks);
} }
if (pFilePathCopy == NULL && pFilePathWCopy == NULL) { if (pFilePathCopy == NULL && pFilePathWCopy == NULL) {
...@@ -8047,8 +8028,8 @@ static ma_result ma_resource_manager_data_buffer_node_acquire(ma_resource_manage ...@@ -8047,8 +8028,8 @@ static ma_result ma_resource_manager_data_buffer_node_acquire(ma_resource_manage
if (pInitFence != NULL) { ma_fence_release(pInitFence); } if (pInitFence != NULL) { ma_fence_release(pInitFence); }
if (pDoneFence != NULL) { ma_fence_release(pDoneFence); } if (pDoneFence != NULL) { ma_fence_release(pDoneFence); }
ma_free(pFilePathCopy, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_TRANSIENT_STRING*/); ma_free(pFilePathCopy, &pResourceManager->config.allocationCallbacks);
ma_free(pFilePathWCopy, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_TRANSIENT_STRING*/); ma_free(pFilePathWCopy, &pResourceManager->config.allocationCallbacks);
goto done; goto done;
} }
} }
...@@ -8137,7 +8118,7 @@ done: ...@@ -8137,7 +8118,7 @@ done:
if (result != MA_SUCCESS) { if (result != MA_SUCCESS) {
if (nodeAlreadyExists == MA_FALSE) { if (nodeAlreadyExists == MA_FALSE) {
ma_resource_manager_data_buffer_node_remove(pResourceManager, pDataBufferNode); ma_resource_manager_data_buffer_node_remove(pResourceManager, pDataBufferNode);
ma_free(pDataBufferNode, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_RESOURCE_MANAGER_DATA_BUFFER*/); ma_free(pDataBufferNode, &pResourceManager->config.allocationCallbacks);
} }
} }
...@@ -9030,9 +9011,9 @@ static ma_result ma_resource_manager_data_stream_init_internal(ma_resource_manag ...@@ -9030,9 +9011,9 @@ static ma_result ma_resource_manager_data_stream_init_internal(ma_resource_manag
/* We need a copy of the file path. We should probably make this more efficient, but for now we'll do a transient memory allocation. */ /* We need a copy of the file path. We should probably make this more efficient, but for now we'll do a transient memory allocation. */
if (pFilePath != NULL) { if (pFilePath != NULL) {
pFilePathCopy = ma_copy_string(pFilePath, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_TRANSIENT_STRING*/); pFilePathCopy = ma_copy_string(pFilePath, &pResourceManager->config.allocationCallbacks);
} else { } else {
pFilePathWCopy = ma_copy_string_w(pFilePathW, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_TRANSIENT_STRING*/); pFilePathWCopy = ma_copy_string_w(pFilePathW, &pResourceManager->config.allocationCallbacks);
} }
if (pFilePathCopy == NULL && pFilePathWCopy == NULL) { if (pFilePathCopy == NULL && pFilePathWCopy == NULL) {
...@@ -9068,8 +9049,8 @@ static ma_result ma_resource_manager_data_stream_init_internal(ma_resource_manag ...@@ -9068,8 +9049,8 @@ static ma_result ma_resource_manager_data_stream_init_internal(ma_resource_manag
ma_resource_manager_inline_notification_uninit(&waitNotification); ma_resource_manager_inline_notification_uninit(&waitNotification);
} }
ma_free(pFilePathCopy, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_TRANSIENT_STRING*/); ma_free(pFilePathCopy, &pResourceManager->config.allocationCallbacks);
ma_free(pFilePathWCopy, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_TRANSIENT_STRING*/); ma_free(pFilePathWCopy, &pResourceManager->config.allocationCallbacks);
return result; return result;
} }
...@@ -9972,8 +9953,8 @@ static ma_result ma_resource_manager_process_job__load_data_buffer_node(ma_resou ...@@ -9972,8 +9953,8 @@ static ma_result ma_resource_manager_process_job__load_data_buffer_node(ma_resou
done: done:
/* File paths are no longer needed. */ /* File paths are no longer needed. */
ma_free(pJob->loadDataBufferNode.pFilePath, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_TRANSIENT_STRING*/); ma_free(pJob->loadDataBufferNode.pFilePath, &pResourceManager->config.allocationCallbacks);
ma_free(pJob->loadDataBufferNode.pFilePathW, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_TRANSIENT_STRING*/); ma_free(pJob->loadDataBufferNode.pFilePathW, &pResourceManager->config.allocationCallbacks);
/* /*
We need to set the result to at the very end to ensure no other threads try reading the data before we've fully initialized the object. Other threads We need to set the result to at the very end to ensure no other threads try reading the data before we've fully initialized the object. Other threads
...@@ -10073,7 +10054,7 @@ done: ...@@ -10073,7 +10054,7 @@ done:
/* If there's still more to decode the result will be set to MA_BUSY. Otherwise we can free the decoder. */ /* If there's still more to decode the result will be set to MA_BUSY. Otherwise we can free the decoder. */
if (result != MA_BUSY) { if (result != MA_BUSY) {
ma_decoder_uninit(pJob->pageDataBufferNode.pDecoder); ma_decoder_uninit(pJob->pageDataBufferNode.pDecoder);
ma_free(pJob->pageDataBufferNode.pDecoder, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_DECODER*/); ma_free(pJob->pageDataBufferNode.pDecoder, &pResourceManager->config.allocationCallbacks);
} }
/* If we reached the end we need to treat it as successful. */ /* If we reached the end we need to treat it as successful. */
...@@ -10248,7 +10229,7 @@ static ma_result ma_resource_manager_process_job__load_data_stream(ma_resource_m ...@@ -10248,7 +10229,7 @@ static ma_result ma_resource_manager_process_job__load_data_stream(ma_resource_m
/* We have the decoder so we can now initialize our page buffer. */ /* We have the decoder so we can now initialize our page buffer. */
pageBufferSizeInBytes = ma_resource_manager_data_stream_get_page_size_in_frames(pDataStream) * 2 * ma_get_bytes_per_frame(pDataStream->decoder.outputFormat, pDataStream->decoder.outputChannels); pageBufferSizeInBytes = ma_resource_manager_data_stream_get_page_size_in_frames(pDataStream) * 2 * ma_get_bytes_per_frame(pDataStream->decoder.outputFormat, pDataStream->decoder.outputChannels);
pDataStream->pPageData = ma_malloc(pageBufferSizeInBytes, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_DECODED_BUFFER*/); pDataStream->pPageData = ma_malloc(pageBufferSizeInBytes, &pResourceManager->config.allocationCallbacks);
if (pDataStream->pPageData == NULL) { if (pDataStream->pPageData == NULL) {
ma_decoder_uninit(&pDataStream->decoder); ma_decoder_uninit(&pDataStream->decoder);
result = MA_OUT_OF_MEMORY; result = MA_OUT_OF_MEMORY;
...@@ -10262,8 +10243,8 @@ static ma_result ma_resource_manager_process_job__load_data_stream(ma_resource_m ...@@ -10262,8 +10243,8 @@ static ma_result ma_resource_manager_process_job__load_data_stream(ma_resource_m
result = MA_SUCCESS; result = MA_SUCCESS;
done: done:
ma_free(pJob->loadDataStream.pFilePath, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_TRANSIENT_STRING*/); ma_free(pJob->loadDataStream.pFilePath, &pResourceManager->config.allocationCallbacks);
ma_free(pJob->loadDataStream.pFilePathW, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_TRANSIENT_STRING*/); ma_free(pJob->loadDataStream.pFilePathW, &pResourceManager->config.allocationCallbacks);
/* We can only change the status away from MA_BUSY. If it's set to anything else it means an error has occurred somewhere or the uninitialization process has started (most likely). */ /* We can only change the status away from MA_BUSY. If it's set to anything else it means an error has occurred somewhere or the uninitialization process has started (most likely). */
c89atomic_compare_and_swap_32(&pDataStream->result, MA_BUSY, result); c89atomic_compare_and_swap_32(&pDataStream->result, MA_BUSY, result);
...@@ -10302,7 +10283,7 @@ static ma_result ma_resource_manager_process_job__free_data_stream(ma_resource_m ...@@ -10302,7 +10283,7 @@ static ma_result ma_resource_manager_process_job__free_data_stream(ma_resource_m
} }
if (pDataStream->pPageData != NULL) { if (pDataStream->pPageData != NULL) {
ma_free(pDataStream->pPageData, &pResourceManager->config.allocationCallbacks/*, MA_ALLOCATION_TYPE_DECODED_BUFFER*/); ma_free(pDataStream->pPageData, &pResourceManager->config.allocationCallbacks);
pDataStream->pPageData = NULL; /* Just in case... */ pDataStream->pPageData = NULL; /* Just in case... */
} }
...@@ -12884,7 +12865,7 @@ MA_API ma_result ma_engine_init(const ma_engine_config* pConfig, ma_engine* pEng ...@@ -12884,7 +12865,7 @@ MA_API ma_result ma_engine_init(const ma_engine_config* pConfig, ma_engine* pEng
if (pEngine->pDevice == NULL) { if (pEngine->pDevice == NULL) {
ma_device_config deviceConfig; ma_device_config deviceConfig;
pEngine->pDevice = (ma_device*)ma_malloc(sizeof(*pEngine->pDevice), &pEngine->allocationCallbacks/*, MA_ALLOCATION_TYPE_CONTEXT*/); pEngine->pDevice = (ma_device*)ma_malloc(sizeof(*pEngine->pDevice), &pEngine->allocationCallbacks);
if (pEngine->pDevice == NULL) { if (pEngine->pDevice == NULL) {
return MA_OUT_OF_MEMORY; return MA_OUT_OF_MEMORY;
} }
...@@ -12921,7 +12902,7 @@ MA_API ma_result ma_engine_init(const ma_engine_config* pConfig, ma_engine* pEng ...@@ -12921,7 +12902,7 @@ MA_API ma_result ma_engine_init(const ma_engine_config* pConfig, ma_engine* pEng
} }
if (result != MA_SUCCESS) { if (result != MA_SUCCESS) {
ma_free(pEngine->pDevice, &pEngine->allocationCallbacks/*, MA_ALLOCATION_TYPE_CONTEXT*/); ma_free(pEngine->pDevice, &pEngine->allocationCallbacks);
pEngine->pDevice = NULL; pEngine->pDevice = NULL;
return result; return result;
} }
...@@ -13052,7 +13033,7 @@ on_error_2: ...@@ -13052,7 +13033,7 @@ on_error_2:
on_error_1: on_error_1:
if (pEngine->ownsDevice) { if (pEngine->ownsDevice) {
ma_device_uninit(pEngine->pDevice); ma_device_uninit(pEngine->pDevice);
ma_free(pEngine->pDevice, &pEngine->allocationCallbacks/*, MA_ALLOCATION_TYPE_CONTEXT*/); ma_free(pEngine->pDevice, &pEngine->allocationCallbacks);
} }
return result; return result;
...@@ -13067,7 +13048,7 @@ MA_API void ma_engine_uninit(ma_engine* pEngine) ...@@ -13067,7 +13048,7 @@ MA_API void ma_engine_uninit(ma_engine* pEngine)
/* The device must be uninitialized before the node graph to ensure the audio thread doesn't try accessing it. */ /* The device must be uninitialized before the node graph to ensure the audio thread doesn't try accessing it. */
if (pEngine->ownsDevice) { if (pEngine->ownsDevice) {
ma_device_uninit(pEngine->pDevice); ma_device_uninit(pEngine->pDevice);
ma_free(pEngine->pDevice, &pEngine->allocationCallbacks/*, MA_ALLOCATION_TYPE_CONTEXT*/); ma_free(pEngine->pDevice, &pEngine->allocationCallbacks);
} else { } else {
ma_device_stop(pEngine->pDevice); ma_device_stop(pEngine->pDevice);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment