diff options
author | Fred Bauer <fred.w.bauer@gmail.com> | 2011-09-29 03:15:27 +0000 |
---|---|---|
committer | Fred Bauer <fred.w.bauer@gmail.com> | 2011-09-29 03:15:27 +0000 |
commit | 205ef12b9d503c1fedd5534dab9a8f5fe49798f7 (patch) | |
tree | 46b2087700a8960e05998ee875d55119691e8c65 | |
parent | d20328609d1f8096c619877230d858b4d832beeb (diff) | |
download | rockbox-205ef12b9d503c1fedd5534dab9a8f5fe49798f7.tar.gz rockbox-205ef12b9d503c1fedd5534dab9a8f5fe49798f7.zip |
font_load(): Reduce font memory allocation to the font's file size if less than MAX_FONT_SIZE
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30618 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/font.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/firmware/font.c b/firmware/font.c index e6f90e4ca5..a8d8786259 100644 --- a/firmware/font.c +++ b/firmware/font.c | |||
@@ -550,7 +550,14 @@ int font_load_ex(const char *path, size_t buffer_size) | |||
550 | } | 550 | } |
551 | int font_load(const char *path) | 551 | int font_load(const char *path) |
552 | { | 552 | { |
553 | return font_load_ex(path, MAX_FONT_SIZE); | 553 | int size; |
554 | int fd = open( path, O_RDONLY ); | ||
555 | if ( fd < 0 ) | ||
556 | return -1; | ||
557 | size = filesize(fd); | ||
558 | if (size > MAX_FONT_SIZE) | ||
559 | size = MAX_FONT_SIZE; | ||
560 | return font_load_ex(path, size); | ||
554 | } | 561 | } |
555 | 562 | ||
556 | void font_unload(int font_id) | 563 | void font_unload(int font_id) |