提交 edf70bdc 编写于 作者: Z Zhang Rui

ijkutil: add mallocz and freep

上级 d557c702
......@@ -231,13 +231,12 @@ SDL_AndroidAudioTrack *sdl_audiotrack_new_from_spec(JNIEnv *env, SDL_AndroidAudi
return NULL;
}
SDL_AndroidAudioTrack *atrack = (SDL_AndroidAudioTrack*) malloc(sizeof(SDL_AndroidAudioTrack));
SDL_AndroidAudioTrack *atrack = (SDL_AndroidAudioTrack*) mallocz(sizeof(SDL_AndroidAudioTrack));
if (!atrack) {
(*env)->CallVoidMethod(env, g_clazz.clazz, atrack->thiz, g_clazz.release);
(*env)->DeleteLocalRef(env, thiz);
return NULL;
}
memset(atrack, 0, sizeof(SDL_AndroidAudioTrack));
atrack->spec = *spec;
atrack->min_buffer_size = min_buffer_size;
......
......@@ -29,22 +29,21 @@
inline static SDL_Aout *SDL_Aout_CreateInternal(size_t opaque_size)
{
SDL_Aout *aout = (SDL_Aout*) malloc(sizeof(SDL_Aout));
// FIXME: mallocz;
SDL_Aout *aout = (SDL_Aout*) mallocz(sizeof(SDL_Aout));
if (!aout)
return NULL;
memset(aout, 0, sizeof(SDL_Aout));
aout->opaque = malloc(opaque_size);
aout->opaque = mallocz(opaque_size);
if (!aout->opaque) {
free(aout);
return NULL;
}
memset(aout->opaque, 0, sizeof(aout->opaque));
aout->mutex = SDL_CreateMutex();
if (aout->mutex == NULL) {
free(aout->opaque);
free(aout);
freep(aout->opaque);
freep(aout);
return NULL;
}
......
......@@ -24,11 +24,12 @@
#include "ijksdl_mutex.h"
#include <errno.h>
#include <assert.h>
#include "ijksdl_inc_internal.h"
SDL_mutex *SDL_CreateMutex(void)
{
SDL_mutex *mutex;
mutex = (SDL_mutex *) malloc(sizeof(SDL_mutex));
mutex = (SDL_mutex *) mallocz(sizeof(SDL_mutex));
if (!mutex)
return NULL;
......@@ -68,7 +69,7 @@ int SDL_UnlockMutex(SDL_mutex *mutex)
SDL_cond *SDL_CreateCond(void)
{
SDL_cond *cond;
cond = (SDL_cond *) malloc(sizeof(SDL_cond));
cond = (SDL_cond *) mallocz(sizeof(SDL_cond));
if (!cond)
return NULL;
......
......@@ -28,17 +28,15 @@
inline static SDL_Vout *SDL_Vout_CreateInternal(size_t opaque_size)
{
SDL_Vout *vout = (SDL_Vout*) malloc(sizeof(SDL_Vout));
SDL_Vout *vout = (SDL_Vout*) mallocz(sizeof(SDL_Vout));
if (!vout)
return NULL;
memset(vout, 0, sizeof(SDL_Vout));
vout->opaque = malloc(opaque_size);
vout->opaque = mallocz(opaque_size);
if (!vout->opaque) {
free(vout);
return NULL;
}
memset(vout->opaque, 0, opaque_size);
vout->mutex = SDL_CreateMutex();
if (vout->mutex == NULL) {
......@@ -66,17 +64,15 @@ inline static void SDL_Vout_FreeInternal(SDL_Vout *vout)
inline static SDL_VoutOverlay *SDL_VoutOverlay_CreateInternal(size_t opaque_size)
{
SDL_VoutOverlay *overlay = (SDL_VoutOverlay*) malloc(sizeof(SDL_VoutOverlay));
SDL_VoutOverlay *overlay = (SDL_VoutOverlay*) mallocz(sizeof(SDL_VoutOverlay));
if (!overlay)
return NULL;
memset(overlay, 0, sizeof(SDL_VoutOverlay));
overlay->opaque = malloc(opaque_size);
overlay->opaque = mallocz(opaque_size);
if (!overlay->opaque) {
free(overlay);
return NULL;
}
memset(overlay->opaque, 0, opaque_size);
return overlay;
}
......
......@@ -44,4 +44,22 @@
return (retval__); \
}
inline void *mallocz(size_t size)
{
void *mem = malloc(size);
if (!mem)
return mem;
memset(mem, 0, size);
return mem;
}
inline void freep(void **mem)
{
if (mem && *mem) {
free(*mem);
*mem = NULL;
}
}
#endif
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册