elm_image: create image object before call elm_image_object_get

Summary:
image object was created in group_add before 868e3308. if you call
elm_image_object_get before file_set, you can get NULL.
this patch avoid that.

Test Plan:
obj = elm_image_add(...);
img = elm_image_object_get(obj);

img should not be NULL.

Reviewers: Hermet, zmike

Reviewed By: zmike

Subscribers: JackDanielZ, cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6828
This commit is contained in:
Yeongjong Lee 2018-08-16 10:01:37 -04:00 committed by Mike Blumenkrantz
parent 88ecbdadc3
commit 07692dc640
3 changed files with 18 additions and 1 deletions

View File

@ -2128,6 +2128,9 @@ elm_image_object_get(const Evas_Object *obj)
{ {
EFL_UI_IMAGE_CHECK(obj) NULL; EFL_UI_IMAGE_CHECK(obj) NULL;
EFL_UI_IMAGE_DATA_GET(obj, sd); EFL_UI_IMAGE_DATA_GET(obj, sd);
if (!sd->img)
sd->img = _img_new((Evas_Object *)obj);
return sd->img; return sd->img;
} }

View File

@ -434,7 +434,7 @@ EAPI Elm_Image_Orient elm_image_orient_get(const Evas_Object *obj);
* *
* @note Be careful to not manipulate it, as it is under control of elementary. * @note Be careful to not manipulate it, as it is under control of elementary.
* *
* @return The inlined image object, or NULL if none exists * @return The inlined image object.
* *
* @ingroup Elm_Image * @ingroup Elm_Image
*/ */

View File

@ -213,6 +213,19 @@ EFL_START_TEST (elm_image_evas_object_color_set)
} }
EFL_END_TEST EFL_END_TEST
EFL_START_TEST (elm_image_evas_image_get)
{
Evas_Object *win, *image, *obj;
win = win_add(NULL, "image", ELM_WIN_BASIC);
image = elm_image_add(win);
obj = elm_image_object_get(image);
ck_assert(obj);
}
EFL_END_TEST
EFL_START_TEST (efl_ui_image_icon) EFL_START_TEST (efl_ui_image_icon)
{ {
Evas_Object *win, *image; Evas_Object *win, *image;
@ -244,5 +257,6 @@ void elm_test_image(TCase *tc)
tcase_add_test(tc, elm_image_async_path); tcase_add_test(tc, elm_image_async_path);
tcase_add_test(tc, elm_image_async_mmap); tcase_add_test(tc, elm_image_async_mmap);
tcase_add_test(tc, elm_image_evas_object_color_set); tcase_add_test(tc, elm_image_evas_object_color_set);
tcase_add_test(tc, elm_image_evas_image_get);
tcase_add_test(tc, efl_ui_image_icon); tcase_add_test(tc, efl_ui_image_icon);
} }