genlist: check item validation in ELM_GENLIST_ITEM_CHECK
authorSangHyeon Jade Lee <sh10233.lee@samsung.com>
Mon, 23 Jul 2018 07:49:20 +0000 (16:49 +0900)
committerYoungbok Shin <youngb.shin@samsung.com>
Thu, 26 Jul 2018 09:13:04 +0000 (18:13 +0900)
Change-Id: Ic29a036858cd0c82e2185c9d457e97d912af0e21

src/lib/elementary/elm_widget_genlist.h
src/lib/elementary_tizen/elm_widget_genlist.h

index 6afadcc..4499947 100644 (file)
@@ -371,14 +371,17 @@ struct _Elm_Genlist_Filter
     return
 
 #define ELM_GENLIST_ITEM_CHECK(it)                          \
+  if (!it) return; \
   ELM_WIDGET_ITEM_CHECK_OR_RETURN(it->base, ); \
   ELM_GENLIST_CHECK(it->base->widget);
 
 #define ELM_GENLIST_ITEM_CHECK_OR_RETURN(it, ...)                      \
+  if (!it) return __VA_ARGS__; \
   ELM_WIDGET_ITEM_CHECK_OR_RETURN(it->base, __VA_ARGS__); \
   ELM_GENLIST_CHECK(it->base->widget) __VA_ARGS__;
 
 #define ELM_GENLIST_ITEM_CHECK_OR_GOTO(it, label)              \
+  if (!it) goto label; \
   ELM_WIDGET_ITEM_CHECK_OR_GOTO(it->base, label); \
   if (!it->base->widget || !efl_isa                              \
         ((it->base->widget), ELM_GENLIST_CLASS)) goto label;
index 3f4209d..9fc0f98 100644 (file)
@@ -488,14 +488,17 @@ struct _Elm_Genlist_Filter
     return
 
 #define ELM_GENLIST_ITEM_CHECK(it)                          \
+  if (!it) return; \
   ELM_WIDGET_ITEM_CHECK_OR_RETURN(it->base, ); \
   ELM_GENLIST_CHECK(it->base->widget);
 
 #define ELM_GENLIST_ITEM_CHECK_OR_RETURN(it, ...)                      \
+  if (!it) return __VA_ARGS__; \
   ELM_WIDGET_ITEM_CHECK_OR_RETURN(it->base, __VA_ARGS__); \
   ELM_GENLIST_CHECK(it->base->widget) __VA_ARGS__;
 
 #define ELM_GENLIST_ITEM_CHECK_OR_GOTO(it, label)              \
+  if (!it) goto label; \
   ELM_WIDGET_ITEM_CHECK_OR_GOTO(it->base, label); \
   if (!it->base->widget || !efl_isa                              \
         ((it->base->widget), ELM_GENLIST_CLASS)) goto label;