all efl object deletion functions now take NULL without crashing or erroring

SVN revision: 81667
This commit is contained in:
Mike Blumenkrantz 2012-12-24 09:35:56 +00:00
parent f5a98df8de
commit b2de05f49a
18 changed files with 23 additions and 0 deletions

View File

@ -1,6 +1,7 @@
2012-12-24 Mike Blumenkrantz 2012-12-24 Mike Blumenkrantz
* eina_magic_fail() now throws error messages on NULL pointers instead of critical * eina_magic_fail() now throws error messages on NULL pointers instead of critical
* all efl object-freeing functions now take NULL without crashing or erroring
2012-12-19 Gustavo Sverzut Barbieri (k-s) 2012-12-19 Gustavo Sverzut Barbieri (k-s)

1
NEWS
View File

@ -63,6 +63,7 @@ Improvements:
repeatedly calling malloc/free. repeatedly calling malloc/free.
* Display more information with eet -l -v. * Display more information with eet -l -v.
* eina_magic_fail() now throws error messages on NULL pointers instead of critical * eina_magic_fail() now throws error messages on NULL pointers instead of critical
* all efl object-freeing functions now take NULL without crashing or erroring
Fixes: Fixes:
* Fix PPC (big endian) image codec bug. * Fix PPC (big endian) image codec bug.

View File

@ -398,6 +398,7 @@ ecore_animator_del(Ecore_Animator *obj)
{ {
void *data = NULL; void *data = NULL;
if (!obj) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
Ecore_Animator_Private_Data *animator = eo_data_get(obj, MY_CLASS); Ecore_Animator_Private_Data *animator = eo_data_get(obj, MY_CLASS);
_ecore_lock(); _ecore_lock();

View File

@ -128,6 +128,7 @@ ecore_event_handler_del(Ecore_Event_Handler *event_handler)
{ {
void *data = NULL; void *data = NULL;
if (!event_handler) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
_ecore_lock(); _ecore_lock();
if (!ECORE_MAGIC_CHECK(event_handler, ECORE_MAGIC_EVENT_HANDLER)) if (!ECORE_MAGIC_CHECK(event_handler, ECORE_MAGIC_EVENT_HANDLER))
@ -215,6 +216,7 @@ ecore_event_del(Ecore_Event *event)
{ {
void *data = NULL; void *data = NULL;
if (!event) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
_ecore_lock(); _ecore_lock();
if (!ECORE_MAGIC_CHECK(event, ECORE_MAGIC_EVENT)) if (!ECORE_MAGIC_CHECK(event, ECORE_MAGIC_EVENT))
@ -272,6 +274,7 @@ ecore_event_filter_del(Ecore_Event_Filter *ef)
{ {
void *data = NULL; void *data = NULL;
if (!ef) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
_ecore_lock(); _ecore_lock();
if (!ECORE_MAGIC_CHECK(ef, ECORE_MAGIC_EVENT_FILTER)) if (!ECORE_MAGIC_CHECK(ef, ECORE_MAGIC_EVENT_FILTER))

View File

@ -1068,6 +1068,7 @@ ecore_exe_free(Ecore_Exe *exe)
int ok = 0; int ok = 0;
int result; int result;
if (!exe) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
if (!ECORE_MAGIC_CHECK(exe, ECORE_MAGIC_EXE)) if (!ECORE_MAGIC_CHECK(exe, ECORE_MAGIC_EXE))
{ {

View File

@ -157,6 +157,7 @@ ecore_idle_enterer_del(Ecore_Idle_Enterer *idle_enterer)
{ {
void *data = NULL; void *data = NULL;
if (!idle_enterer) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
_ecore_lock(); _ecore_lock();

View File

@ -110,6 +110,7 @@ ecore_idle_exiter_del(Ecore_Idle_Exiter *idle_exiter)
{ {
void *data; void *data;
if (!idle_exiter) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
_ecore_lock(); _ecore_lock();

View File

@ -91,6 +91,7 @@ ecore_idler_del(Ecore_Idler *idler)
{ {
void *data = NULL; void *data = NULL;
if (!idler) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
_ecore_lock(); _ecore_lock();

View File

@ -122,6 +122,7 @@ ecore_job_del(Ecore_Job *obj)
{ {
void *data; void *data;
if (!obj) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
Ecore_Job_Private_Data *job = eo_data_get(obj, MY_CLASS); Ecore_Job_Private_Data *job = eo_data_get(obj, MY_CLASS);
data = job->data; data = job->data;

View File

@ -1174,6 +1174,7 @@ ecore_main_fd_handler_del(Ecore_Fd_Handler *fd_handler)
{ {
void *ret = NULL; void *ret = NULL;
if (!fd_handler) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
_ecore_lock(); _ecore_lock();
@ -1193,6 +1194,7 @@ unlock:
EAPI void * EAPI void *
ecore_main_win32_handler_del(Ecore_Win32_Handler *win32_handler) ecore_main_win32_handler_del(Ecore_Win32_Handler *win32_handler)
{ {
if (!win32_handler) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
if (!ECORE_MAGIC_CHECK(win32_handler, ECORE_MAGIC_WIN32_HANDLER)) if (!ECORE_MAGIC_CHECK(win32_handler, ECORE_MAGIC_WIN32_HANDLER))
{ {

View File

@ -142,6 +142,7 @@ EAPI void *
ecore_pipe_del(Ecore_Pipe *p) ecore_pipe_del(Ecore_Pipe *p)
{ {
void *r; void *r;
if (!p) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
_ecore_lock(); _ecore_lock();
r = _ecore_pipe_del(p); r = _ecore_pipe_del(p);

View File

@ -392,6 +392,7 @@ ecore_poller_del(Ecore_Poller *obj)
{ {
void *data; void *data;
if (!obj) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
Ecore_Poller_Private_Data *poller = eo_data_get(obj, MY_CLASS); Ecore_Poller_Private_Data *poller = eo_data_get(obj, MY_CLASS);
/* we are walking the poller list - a bad idea to remove from it while /* we are walking the poller list - a bad idea to remove from it while

View File

@ -272,6 +272,7 @@ ecore_timer_del(Ecore_Timer *timer)
{ {
void *data = NULL; void *data = NULL;
if (!timer) return NULL;
EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL); EINA_MAIN_LOOP_CHECK_RETURN_VAL(NULL);
_ecore_lock(); _ecore_lock();

View File

@ -552,6 +552,7 @@ ecore_con_server_timeout_get(Ecore_Con_Server *svr)
EAPI void * EAPI void *
ecore_con_server_del(Ecore_Con_Server *svr) ecore_con_server_del(Ecore_Con_Server *svr)
{ {
if (!svr) return NULL;
if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER)) if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_CON_SERVER))
{ {
ECORE_MAGIC_FAIL(svr, ECORE_MAGIC_CON_SERVER, "ecore_con_server_del"); ECORE_MAGIC_FAIL(svr, ECORE_MAGIC_CON_SERVER, "ecore_con_server_del");
@ -854,6 +855,7 @@ ecore_con_client_timeout_get(Ecore_Con_Client *cl)
EAPI void * EAPI void *
ecore_con_client_del(Ecore_Con_Client *cl) ecore_con_client_del(Ecore_Con_Client *cl)
{ {
if (!cl) return NULL;
if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT)) if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_CON_CLIENT))
{ {
ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_CON_CLIENT, "ecore_con_client_del"); ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_CON_CLIENT, "ecore_con_client_del");

View File

@ -699,6 +699,7 @@ ecore_evas_ecore_evas_get(const Evas *e)
EAPI void EAPI void
ecore_evas_free(Ecore_Evas *ee) ecore_evas_free(Ecore_Evas *ee)
{ {
if (!ee) return;
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS)) if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
{ {
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS, ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,

View File

@ -67,6 +67,7 @@ ecore_file_monitor_add(const char *path,
EAPI void EAPI void
ecore_file_monitor_del(Ecore_File_Monitor *em) ecore_file_monitor_del(Ecore_File_Monitor *em)
{ {
if (!em) return;
EINA_SAFETY_ON_NULL_RETURN(em); EINA_SAFETY_ON_NULL_RETURN(em);
ecore_file_monitor_backend_del(em); ecore_file_monitor_backend_del(em);
} }

View File

@ -458,6 +458,7 @@ ecore_ipc_server_del(Ecore_Ipc_Server *svr)
{ {
void *data; void *data;
if (!svr) return NULL;
if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_IPC_SERVER)) if (!ECORE_MAGIC_CHECK(svr, ECORE_MAGIC_IPC_SERVER))
{ {
ECORE_MAGIC_FAIL(svr, ECORE_MAGIC_IPC_SERVER, ECORE_MAGIC_FAIL(svr, ECORE_MAGIC_IPC_SERVER,
@ -874,6 +875,7 @@ ecore_ipc_client_del(Ecore_Ipc_Client *cl)
void *data; void *data;
Ecore_Ipc_Server *svr; Ecore_Ipc_Server *svr;
if (!cl) return NULL;
if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_IPC_CLIENT)) if (!ECORE_MAGIC_CHECK(cl, ECORE_MAGIC_IPC_CLIENT))
{ {
ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_IPC_CLIENT, ECORE_MAGIC_FAIL(cl, ECORE_MAGIC_IPC_CLIENT,

View File

@ -846,6 +846,7 @@ eio_file_stat_ls(const char *dir,
EAPI Eina_Bool EAPI Eina_Bool
eio_file_cancel(Eio_File *ls) eio_file_cancel(Eio_File *ls)
{ {
if (!ls) return EINA_FALSE;
EINA_SAFETY_ON_NULL_RETURN_VAL(ls, EINA_FALSE); EINA_SAFETY_ON_NULL_RETURN_VAL(ls, EINA_FALSE);
return ecore_thread_cancel(ls->thread); return ecore_thread_cancel(ls->thread);
} }