mirror of
https://github.com/nyanmisaka/mpp.git
synced 2025-10-05 09:06:50 +08:00
[mpp_mem]: Reduce mutex lock range
Change-Id: Ic70f0d66ad20878bca0b4ad3a5d5e933f96ca4b3 Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
@@ -642,7 +642,6 @@ void MppMemService::dump(const char *caller)
|
|||||||
|
|
||||||
void *mpp_osal_malloc(const char *caller, size_t size)
|
void *mpp_osal_malloc(const char *caller, size_t size)
|
||||||
{
|
{
|
||||||
AutoMutex auto_lock(&service.lock);
|
|
||||||
RK_U32 debug = service.debug;
|
RK_U32 debug = service.debug;
|
||||||
size_t size_align = MEM_ALIGNED(size);
|
size_t size_align = MEM_ALIGNED(size);
|
||||||
size_t size_real = (debug & MEM_EXT_ROOM) ? (size_align + 2 * MEM_ALIGN) :
|
size_t size_real = (debug & MEM_EXT_ROOM) ? (size_align + 2 * MEM_ALIGN) :
|
||||||
@@ -652,6 +651,7 @@ void *mpp_osal_malloc(const char *caller, size_t size)
|
|||||||
os_malloc(&ptr, MEM_ALIGN, size_real);
|
os_malloc(&ptr, MEM_ALIGN, size_real);
|
||||||
|
|
||||||
if (debug) {
|
if (debug) {
|
||||||
|
AutoMutex auto_lock(&service.lock);
|
||||||
service.add_log(MEM_MALLOC, caller, NULL, ptr, size, size_real);
|
service.add_log(MEM_MALLOC, caller, NULL, ptr, size, size_real);
|
||||||
|
|
||||||
if (ptr) {
|
if (ptr) {
|
||||||
@@ -677,7 +677,6 @@ void *mpp_osal_calloc(const char *caller, size_t size)
|
|||||||
|
|
||||||
void *mpp_osal_realloc(const char *caller, void *ptr, size_t size)
|
void *mpp_osal_realloc(const char *caller, void *ptr, size_t size)
|
||||||
{
|
{
|
||||||
AutoMutex auto_lock(&service.lock);
|
|
||||||
RK_U32 debug = service.debug;
|
RK_U32 debug = service.debug;
|
||||||
void *ret;
|
void *ret;
|
||||||
|
|
||||||
@@ -700,6 +699,8 @@ void *mpp_osal_realloc(const char *caller, void *ptr, size_t size)
|
|||||||
// if realloc fail the original buffer will be kept the same.
|
// if realloc fail the original buffer will be kept the same.
|
||||||
mpp_err("mpp_realloc ptr %p to size %d failed\n", ptr, size);
|
mpp_err("mpp_realloc ptr %p to size %d failed\n", ptr, size);
|
||||||
} else {
|
} else {
|
||||||
|
AutoMutex auto_lock(&service.lock);
|
||||||
|
|
||||||
// if realloc success reset the node and record
|
// if realloc success reset the node and record
|
||||||
if (debug) {
|
if (debug) {
|
||||||
void *ret_ptr = (debug & MEM_EXT_ROOM) ?
|
void *ret_ptr = (debug & MEM_EXT_ROOM) ?
|
||||||
@@ -716,7 +717,6 @@ void *mpp_osal_realloc(const char *caller, void *ptr, size_t size)
|
|||||||
|
|
||||||
void mpp_osal_free(const char *caller, void *ptr)
|
void mpp_osal_free(const char *caller, void *ptr)
|
||||||
{
|
{
|
||||||
AutoMutex auto_lock(&service.lock);
|
|
||||||
RK_U32 debug = service.debug;
|
RK_U32 debug = service.debug;
|
||||||
if (NULL == ptr)
|
if (NULL == ptr)
|
||||||
return;
|
return;
|
||||||
@@ -728,6 +728,7 @@ void mpp_osal_free(const char *caller, void *ptr)
|
|||||||
|
|
||||||
size_t size = 0;
|
size_t size = 0;
|
||||||
|
|
||||||
|
AutoMutex auto_lock(&service.lock);
|
||||||
if (debug & MEM_POISON) {
|
if (debug & MEM_POISON) {
|
||||||
// NODE: keep this node and delete delay node
|
// NODE: keep this node and delete delay node
|
||||||
void *ret = service.delay_del_node(caller, ptr, &size);
|
void *ret = service.delay_del_node(caller, ptr, &size);
|
||||||
|
Reference in New Issue
Block a user