diff options
author | Magnus Holmgren <magnushol@gmail.com> | 2009-06-30 21:32:38 +0000 |
---|---|---|
committer | Magnus Holmgren <magnushol@gmail.com> | 2009-06-30 21:32:38 +0000 |
commit | a538b89060bee76d5c6a078883748cac0a720ea7 (patch) | |
tree | 56592283fe938c61bbeed1f30493426568de0c6d | |
parent | 02bbf55d9d08fcb91803ee246486c5661e372aec (diff) | |
download | rockbox-a538b89060bee76d5c6a078883748cac0a720ea7.tar.gz rockbox-a538b89060bee76d5c6a078883748cac0a720ea7.zip |
Second attempt at fixing FS#10396. Turns out that gcc for coldfire choose to inline a function with a big appetite for stack. The previous fix improved things a bit, but not nearly enough.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21580 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | apps/tagcache.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/apps/tagcache.c b/apps/tagcache.c index 8448c02db1..391d8c6f81 100644 --- a/apps/tagcache.c +++ b/apps/tagcache.c | |||
@@ -1653,12 +1653,16 @@ static int check_if_empty(char **tag) | |||
1653 | entry.tag_offset[tag] = offset; \ | 1653 | entry.tag_offset[tag] = offset; \ |
1654 | entry.tag_length[tag] = check_if_empty(data); \ | 1654 | entry.tag_length[tag] = check_if_empty(data); \ |
1655 | offset += entry.tag_length[tag] | 1655 | offset += entry.tag_length[tag] |
1656 | 1656 | /* GCC 3.4.6 for Coldfire can choose to inline this function. Not a good | |
1657 | static void add_tagcache(char *path, unsigned long mtime | 1657 | * idea, as it uses lots of stack and is called from a recursive function |
1658 | * (check_dir). | ||
1659 | */ | ||
1660 | static void __attribute__ ((noinline)) add_tagcache(char *path, | ||
1661 | unsigned long mtime | ||
1658 | #if defined(HAVE_TC_RAMCACHE) && defined(HAVE_DIRCACHE) | 1662 | #if defined(HAVE_TC_RAMCACHE) && defined(HAVE_DIRCACHE) |
1659 | ,const struct dirent *dc | 1663 | ,const struct dirent *dc |
1660 | #endif | 1664 | #endif |
1661 | ) | 1665 | ) |
1662 | { | 1666 | { |
1663 | struct mp3entry id3; | 1667 | struct mp3entry id3; |
1664 | struct temp_file_entry entry; | 1668 | struct temp_file_entry entry; |