summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2010-10-10 13:17:39 +0000
committerFrank Gevaerts <frank@gevaerts.be>2010-10-10 13:17:39 +0000
commitc8c40c52916ec5af08c4ec76059b632366c0fa5f (patch)
tree8ddb8b862add93e7273aedcf71d32ffc81d225cf /apps/gui/skin_engine
parent0d100b4dd83a780af9bd3e3b0384e4a40e517ff4 (diff)
downloadrockbox-c8c40c52916ec5af08c4ec76059b632366c0fa5f.zip
rockbox-c8c40c52916ec5af08c4ec76059b632366c0fa5f.tar.gz
rockbox-c8c40c52916ec5af08c4ec76059b632366c0fa5f.tar.bz2
rockbox-c8c40c52916ec5af08c4ec76059b632366c0fa5f.tar.xz
Add a "early_usb" argument to gui_usb_screen_run(), and don't do skin unloading/reloading in gui_usb_screen_run() in the early usb case. Fixes the crash part of FS#11589
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28229 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/skin_engine')
-rw-r--r--apps/gui/skin_engine/skin_render.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c
index 304ebf1..17ecce7 100644
--- a/apps/gui/skin_engine/skin_render.c
+++ b/apps/gui/skin_engine/skin_render.c
@@ -78,7 +78,7 @@ static void skin_render_playlistviewer(struct playlistviewer* viewer,
unsigned long refresh_type);
#endif
-static bool do_non_text_tags(struct gui_wps *gwps, struct skin_draw_info *info,
+static __attribute__((noinline)) bool do_non_text_tags(struct gui_wps *gwps, struct skin_draw_info *info,
struct skin_element *element, struct viewport* vp)
{
#ifndef HAVE_LCD_BITMAP
@@ -234,7 +234,7 @@ static bool do_non_text_tags(struct gui_wps *gwps, struct skin_draw_info *info,
-static void do_tags_in_hidden_conditional(struct skin_element* branch,
+static __attribute__((noinline)) void do_tags_in_hidden_conditional(struct skin_element* branch,
struct skin_draw_info *info)
{
#ifdef HAVE_LCD_BITMAP
@@ -328,7 +328,7 @@ static void do_tags_in_hidden_conditional(struct skin_element* branch,
}
}
-static void fix_line_alignment(struct skin_draw_info *info, struct skin_element *element)
+static __attribute__((noinline)) void fix_line_alignment(struct skin_draw_info *info, struct skin_element *element)
{
struct align_pos *align = &info->align;
char *cur_pos = info->cur_align_start + strlen(info->cur_align_start);
@@ -371,7 +371,7 @@ static void fix_line_alignment(struct skin_draw_info *info, struct skin_element
}
/* Draw a LINE element onto the display */
-static bool skin_render_line(struct skin_element* line, struct skin_draw_info *info)
+static __attribute__((noinline)) bool skin_render_line(struct skin_element* line, struct skin_draw_info *info)
{
bool needs_update = false;
int last_value, value;
@@ -478,7 +478,7 @@ static bool skin_render_line(struct skin_element* line, struct skin_draw_info *i
return needs_update;
}
-static int get_subline_timeout(struct gui_wps *gwps, struct skin_element* line)
+static __attribute__((noinline)) int get_subline_timeout(struct gui_wps *gwps, struct skin_element* line)
{
struct skin_element *element=line;
struct wps_token *token;
@@ -514,7 +514,7 @@ static int get_subline_timeout(struct gui_wps *gwps, struct skin_element* line)
return retval;
}
-bool skin_render_alternator(struct skin_element* element, struct skin_draw_info *info)
+bool __attribute__((noinline)) skin_render_alternator(struct skin_element* element, struct skin_draw_info *info)
{
bool changed_lines = false;
struct line_alternator *alternator = (struct line_alternator*)element->data;
@@ -570,7 +570,7 @@ bool skin_render_alternator(struct skin_element* element, struct skin_draw_info
return changed_lines || ret;
}
-static void skin_render_viewport(struct skin_element* viewport, struct gui_wps *gwps,
+static __attribute__((noinline)) void skin_render_viewport(struct skin_element* viewport, struct gui_wps *gwps,
struct skin_viewport* skin_viewport, unsigned long refresh_type)
{
struct screen *display = gwps->display;
@@ -715,7 +715,7 @@ void skin_render(struct gui_wps *gwps, unsigned refresh_mode)
}
#ifdef HAVE_LCD_BITMAP
-static void skin_render_playlistviewer(struct playlistviewer* viewer,
+static __attribute__((noinline)) void skin_render_playlistviewer(struct playlistviewer* viewer,
struct gui_wps *gwps,
struct skin_viewport* skin_viewport,
unsigned long refresh_type)