mirror of
https://github.com/zlgopen/awtk.git
synced 2025-05-08 19:44:45 +08:00
rollback changes in bitmap_destroy
This commit is contained in:
parent
10abd3186e
commit
0a22401706
@ -46,18 +46,18 @@ ret_t bitmap_destroy(bitmap_t* bitmap) {
|
||||
}
|
||||
|
||||
if (bitmap->should_free_data) {
|
||||
if (bitmap->buffer != NULL) {
|
||||
graphic_buffer_destroy(bitmap->buffer);
|
||||
}
|
||||
|
||||
if (bitmap->gif_delays != NULL) {
|
||||
TKMEM_FREE(bitmap->gif_delays);
|
||||
bitmap->gif_delays = NULL;
|
||||
}
|
||||
|
||||
TKMEM_FREE(bitmap->data_free_ptr);
|
||||
}
|
||||
|
||||
if (bitmap->buffer != NULL) {
|
||||
graphic_buffer_destroy(bitmap->buffer);
|
||||
}
|
||||
|
||||
if (bitmap->gif_delays != NULL) {
|
||||
TKMEM_FREE(bitmap->gif_delays);
|
||||
bitmap->gif_delays = NULL;
|
||||
}
|
||||
|
||||
if (bitmap->should_free_handle) {
|
||||
memset(bitmap, 0x00, sizeof(bitmap_t));
|
||||
TKMEM_FREE(bitmap);
|
||||
@ -462,6 +462,7 @@ ret_t bitmap_init(bitmap_t* bitmap, uint32_t w, uint32_t h, bitmap_format_t form
|
||||
bitmap_alloc_data(bitmap);
|
||||
} else {
|
||||
bitmap->buffer = GRAPHIC_BUFFER_CREATE_WITH_DATA(data, w, h, format);
|
||||
bitmap->should_free_handle = TRUE;
|
||||
}
|
||||
|
||||
return bitmap->buffer != NULL ? RET_OK : RET_OOM;
|
||||
|
@ -17,6 +17,23 @@ TEST(ImageManager, basic) {
|
||||
ASSERT_EQ(image_manager_unload_unused(image_manager(), 0), RET_OK);
|
||||
}
|
||||
|
||||
TEST(ImageManager, allloc) {
|
||||
bitmap_t* bmp = bitmap_create();
|
||||
ASSERT_EQ(image_manager_get_bitmap(image_manager(), "checked", bmp), RET_OK);
|
||||
bitmap_destroy(bmp);
|
||||
|
||||
bmp = bitmap_create();
|
||||
ASSERT_EQ(image_manager_lookup(image_manager(), "checked", bmp), RET_OK);
|
||||
ASSERT_EQ(image_manager_get_bitmap(image_manager(), "not found", bmp), RET_NOT_FOUND);
|
||||
bitmap_destroy(bmp);
|
||||
|
||||
bmp = bitmap_create();
|
||||
ASSERT_EQ(image_manager_lookup(image_manager(), "unchecked", bmp), RET_NOT_FOUND);
|
||||
bitmap_destroy(bmp);
|
||||
|
||||
ASSERT_EQ(image_manager_unload_unused(image_manager(), 0), RET_OK);
|
||||
}
|
||||
|
||||
TEST(ImageManager, unload) {
|
||||
bitmap_t bmp;
|
||||
memset(&bmp, 0x00, sizeof(bmp));
|
||||
|
@ -15,6 +15,8 @@ static void init_image(bitmap_t* fb, bitmap_t* img, bitmap_format_t format) {
|
||||
|
||||
bitmap_init(fb, FB_W, FB_H, format, fb_buff);
|
||||
bitmap_init(img, IMG_W, IMG_H, format, img_buff);
|
||||
fb->should_free_data = TRUE;
|
||||
img->should_free_data = TRUE;
|
||||
|
||||
memset(s_fb_buff, 0x00, sizeof(s_fb_buff));
|
||||
memset(s_img_buff, 0xfe, sizeof(s_img_buff));
|
||||
|
Loading…
x
Reference in New Issue
Block a user