From 06a68e056a971bc39756011a6ed909b279d74b49 Mon Sep 17 00:00:00 2001 From: idea4good Date: Fri, 22 May 2020 00:37:50 +0800 Subject: [PATCH] simplify display.h --- GuiLite.h | 19 ++----------------- workspace/core_include/display.h | 19 ++----------------- 2 files changed, 4 insertions(+), 34 deletions(-) diff --git a/GuiLite.h b/GuiLite.h index d43cd2e..b8c0e60 100644 --- a/GuiLite.h +++ b/GuiLite.h @@ -905,23 +905,8 @@ inline c_display::c_display(void* phy_fb, int display_width, int display_height, memset(m_surface_group, 0, sizeof(m_surface_group)); for (int i = 0; i < m_surface_cnt; i++) - {// Avoid new operation, new operation maybe crash program on Keil platform sometimes. - if (phy_fb) - { - c_surface tmp(surface_width, surface_height, color_bytes); - c_surface* surface = (c_surface*)malloc(sizeof(c_surface)); - ASSERT(surface); - memcpy(surface, &tmp, sizeof(tmp)); - m_surface_group[i] = surface; - } - else - { - c_surface_no_fb tmp(surface_width, surface_height, color_bytes, gfx_op); - c_surface_no_fb* surface = (c_surface_no_fb*)malloc(sizeof(c_surface_no_fb)); - ASSERT(surface); - memcpy(surface, &tmp, sizeof(tmp)); - m_surface_group[i] = surface; - } + { + m_surface_group[i] = (phy_fb) ? new c_surface(surface_width, surface_height, color_bytes) : new c_surface_no_fb(surface_width, surface_height, color_bytes, gfx_op); m_surface_group[i]->attach_display(this); } } diff --git a/workspace/core_include/display.h b/workspace/core_include/display.h index df6d999..dbe123c 100644 --- a/workspace/core_include/display.h +++ b/workspace/core_include/display.h @@ -597,23 +597,8 @@ inline c_display::c_display(void* phy_fb, int display_width, int display_height, memset(m_surface_group, 0, sizeof(m_surface_group)); for (int i = 0; i < m_surface_cnt; i++) - {// Avoid new operation, new operation maybe crash program on Keil platform sometimes. - if (phy_fb) - { - c_surface tmp(surface_width, surface_height, color_bytes); - c_surface* surface = (c_surface*)malloc(sizeof(c_surface)); - ASSERT(surface); - memcpy(surface, &tmp, sizeof(tmp)); - m_surface_group[i] = surface; - } - else - { - c_surface_no_fb tmp(surface_width, surface_height, color_bytes, gfx_op); - c_surface_no_fb* surface = (c_surface_no_fb*)malloc(sizeof(c_surface_no_fb)); - ASSERT(surface); - memcpy(surface, &tmp, sizeof(tmp)); - m_surface_group[i] = surface; - } + { + m_surface_group[i] = (phy_fb) ? new c_surface(surface_width, surface_height, color_bytes) : new c_surface_no_fb(surface_width, surface_height, color_bytes, gfx_op); m_surface_group[i]->attach_display(this); } }