summaryrefslogtreecommitdiff
path: root/components/gui/src/image_container.c
diff options
context:
space:
mode:
Diffstat (limited to 'components/gui/src/image_container.c')
-rw-r--r--components/gui/src/image_container.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/components/gui/src/image_container.c b/components/gui/src/image_container.c
index 66b7191271..f86300c6ef 100644
--- a/components/gui/src/image_container.c
+++ b/components/gui/src/image_container.c
@@ -393,13 +393,18 @@ rtgui_image_item_t *rtgui_image_container_get(const char *filename)
if (item == RT_NULL)
{
item = (struct rtgui_image_item *) rtgui_malloc(sizeof(struct rtgui_image_item));
- if (item == RT_NULL) return RT_NULL;
+ if (item == RT_NULL)
+ {
+ rt_mutex_release(&_image_hash_lock);
+ return RT_NULL;
+ }
/* create a image object */
item->image = rtgui_image_create(filename, RT_TRUE);
if (item->image == RT_NULL)
{
rtgui_free(item);
+ rt_mutex_release(&_image_hash_lock);
return RT_NULL; /* create image failed */
}
item->refcount = 1;