summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Holmgren <magnushol@gmail.com>2010-09-26 11:58:58 +0000
committerMagnus Holmgren <magnushol@gmail.com>2010-09-26 11:58:58 +0000
commit927a7bdb4b91d3a63f014824711f796e5eb4c5ba (patch)
treed0471561fe92e3da1315f194f72815054ce3f9e4
parent51321cc6f8bffa0246406fb5113de5f7c1970471 (diff)
downloadrockbox-927a7bdb4b91d3a63f014824711f796e5eb4c5ba.zip
rockbox-927a7bdb4b91d3a63f014824711f796e5eb4c5ba.tar.gz
rockbox-927a7bdb4b91d3a63f014824711f796e5eb4c5ba.tar.bz2
rockbox-927a7bdb4b91d3a63f014824711f796e5eb4c5ba.tar.xz
Make sure get_lif_token_value isn't inlined, as it would defeat the purpose of introducing that function. E.g., gcc 3.4.6 for m68k is keen on inlining code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28172 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/gui/skin_engine/skin_tokens.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/apps/gui/skin_engine/skin_tokens.c b/apps/gui/skin_engine/skin_tokens.c
index df4e7d9..19a5ba5 100644
--- a/apps/gui/skin_engine/skin_tokens.c
+++ b/apps/gui/skin_engine/skin_tokens.c
@@ -70,6 +70,8 @@
#include "tuner.h"
#endif
+#define NOINLINE __attribute__ ((noinline))
+
extern struct wps_state wps_state;
static const char* get_codectype(const struct mp3entry* id3)
@@ -552,9 +554,13 @@ static struct mp3entry* get_mp3entry_from_offset(int offset, char **filename)
return pid3;
}
-static const char* get_lif_token_value(struct gui_wps *gwps,
- struct logical_if *lif,
- int offset, char *buf, int buf_size)
+/* Don't inline this; it was broken out of get_token_value to reduce stack
+ * usage.
+ */
+static const char* NOINLINE get_lif_token_value(struct gui_wps *gwps,
+ struct logical_if *lif,
+ int offset, char *buf,
+ int buf_size)
{
int a = lif->num_options;
int b;