From 70090757a35b7a80bed03ca20b992b9bf10aa8a1 Mon Sep 17 00:00:00 2001 From: ChenHengming Date: Tue, 29 Jan 2008 23:29:40 +0000 Subject: [PATCH] [osal]: add clear operation to mpp_free git-svn-id: https://10.10.10.66:8443/svn/MediaProcessPlatform/trunk/mpp@210 6e48237b-75ef-9749-8fc9-41990f28c85a --- mpp/codec/mpp_buf_slot.cpp | 3 +-- mpp/codec/mpp_dec.cpp | 5 ++--- mpp/hal/mpp_hal.cpp | 6 ++---- mpp/legacy/vpu_api.cpp | 10 ++-------- mpp/mpi.cpp | 3 +-- mpp/mpp.cpp | 3 +-- mpp/mpp_packet.cpp | 1 - osal/inc/mpp_mem.h | 8 +++++++- osal/mpp_allocator.cpp | 3 +-- 9 files changed, 17 insertions(+), 25 deletions(-) diff --git a/mpp/codec/mpp_buf_slot.cpp b/mpp/codec/mpp_buf_slot.cpp index 54a0d412..7618c21f 100644 --- a/mpp/codec/mpp_buf_slot.cpp +++ b/mpp/codec/mpp_buf_slot.cpp @@ -93,8 +93,7 @@ MPP_RET mpp_buf_slot_deinit(MppBufSlots slots) MppBufSlotsImpl *impl = (MppBufSlotsImpl *)slots; delete impl->lock; - if (impl->slots) - mpp_free(impl->slots); + mpp_free(impl->slots); mpp_free(slots); return MPP_OK; } diff --git a/mpp/codec/mpp_dec.cpp b/mpp/codec/mpp_dec.cpp index a31f4902..18edb203 100644 --- a/mpp/codec/mpp_dec.cpp +++ b/mpp/codec/mpp_dec.cpp @@ -252,7 +252,7 @@ MPP_RET mpp_dec_init(MppDec **dec, MppCodingType coding) // then init hal with task count from parser MppHalCfg hal_cfg = { MPP_CTX_DEC, - MPP_VIDEO_CodingAVC, + coding, NULL, parser_cfg.task_count, }; @@ -279,8 +279,7 @@ MPP_RET mpp_dec_deinit(MppDec *dec) return MPP_ERR_NULL_PTR; } - if (dec->parser_ctx) - mpp_free(dec->parser_ctx); + mpp_free(dec->parser_ctx); if (dec->hal_ctx) mpp_hal_deinit(dec->hal_ctx); diff --git a/mpp/hal/mpp_hal.cpp b/mpp/hal/mpp_hal.cpp index 98d50a26..0ab0a5ff 100644 --- a/mpp/hal/mpp_hal.cpp +++ b/mpp/hal/mpp_hal.cpp @@ -83,8 +83,7 @@ MPP_RET mpp_hal_init(MppHal *ctx, MppHalCfg *cfg) } mpp_err_f("could not found coding type %d\n", cfg->coding); - if (p->ctx) - mpp_free(p->ctx); + mpp_free(p->ctx); mpp_free(p); return MPP_NOK; @@ -98,8 +97,7 @@ MPP_RET mpp_hal_deinit(MppHal ctx) } MppHalImpl *p = (MppHalImpl*)ctx; - if (p->ctx) - mpp_free(p->ctx); + mpp_free(p->ctx); if (p->tasks) hal_task_group_deinit(p->tasks); mpp_free(p); diff --git a/mpp/legacy/vpu_api.cpp b/mpp/legacy/vpu_api.cpp index ed705d82..512fe2c8 100644 --- a/mpp/legacy/vpu_api.cpp +++ b/mpp/legacy/vpu_api.cpp @@ -224,14 +224,8 @@ RK_S32 vpu_close_context(VpuCodecContext **ctx) delete api; s->vpuApiObj = NULL; } - if (s->extradata) { - mpp_free(s->extradata); - s->extradata = NULL; - } - if (s->private_data) { - mpp_free(s->private_data); - s->private_data = NULL; - } + mpp_free(s->extradata); + mpp_free(s->private_data); mpp_free(s); *ctx = s = NULL; diff --git a/mpp/mpi.cpp b/mpp/mpi.cpp index 2f291ebe..8b412e83 100644 --- a/mpp/mpi.cpp +++ b/mpp/mpi.cpp @@ -224,8 +224,7 @@ MPP_RET mpp_deinit(MppCtx ctx) if (p->ctx) delete p->ctx; - if (p) - mpp_free(p); + mpp_free(p); MPI_FUNCTION_LEAVE(); return MPP_OK; diff --git a/mpp/mpp.cpp b/mpp/mpp.cpp index 8fdd0007..48776e12 100644 --- a/mpp/mpp.cpp +++ b/mpp/mpp.cpp @@ -154,8 +154,7 @@ void Mpp::clear() mpp_buffer_group_put(mFrameGroup); mFrameGroup = NULL; } - if (mTask) - mpp_free(mTask); + mpp_free(mTask); } MPP_RET Mpp::put_packet(MppPacket packet) diff --git a/mpp/mpp_packet.cpp b/mpp/mpp_packet.cpp index 94b034e1..1ce00f86 100644 --- a/mpp/mpp_packet.cpp +++ b/mpp/mpp_packet.cpp @@ -58,7 +58,6 @@ MPP_RET mpp_packet_deinit(MppPacket *packet) } mpp_free(*packet); - *packet = NULL; return MPP_OK; } diff --git a/osal/inc/mpp_mem.h b/osal/inc/mpp_mem.h index c26aa9f9..39d5c52f 100644 --- a/osal/inc/mpp_mem.h +++ b/osal/inc/mpp_mem.h @@ -36,7 +36,13 @@ #define mpp_realloc(ptr, type, count) \ (type*)mpp_osal_realloc(MODULE_TAG, ptr, sizeof(type) * (count)) -#define mpp_free(ptr) mpp_osal_free(ptr) +#define mpp_free(ptr) \ + do { \ + if (ptr) { \ + mpp_osal_free(ptr); \ + ptr = NULL; \ + } \ + } while (0) #ifdef __cplusplus extern "C" { diff --git a/osal/mpp_allocator.cpp b/osal/mpp_allocator.cpp index 90a2db0e..9d98eafc 100644 --- a/osal/mpp_allocator.cpp +++ b/osal/mpp_allocator.cpp @@ -121,8 +121,7 @@ MPP_RET mpp_alloctor_put(MppAllocator *allocator) if (p->os_api.close) p->os_api.close(p->ctx); pthread_mutex_destroy(&p->lock); - if (p) - mpp_free(p); + mpp_free(p); return MPP_OK; }