From 7cb80a2a70d7816ecc64444b47af1ba74190d7e2 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Sun, 12 Aug 2007 07:22:38 +0000 Subject: [PATCH] Fix a problem with the nvram settings which meant adding new items to the end needed the version bump (they dont anymore, but I'm bumping it now anyway to save some bug reports) Also operator precedence fixing. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14290 a1c6a512-1295-4272-9138-f99709370657 --- apps/filetypes.c | 2 +- apps/settings.c | 15 +++++++++++---- apps/settings_list.h | 2 +- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/apps/filetypes.c b/apps/filetypes.c index 1e7224a4e2..090898a3af 100644 --- a/apps/filetypes.c +++ b/apps/filetypes.c @@ -241,7 +241,7 @@ void filetype_init(void) #ifdef HAVE_LCD_COLOR /* the extra item here is for the unknown types which use the last array element */ - custom_colors = (int*)buffer_alloc(sizeof(int)*max_types+1); + custom_colors = (int*)buffer_alloc(sizeof(int)*(max_types+1)); #endif /* set the directory item first */ filetypes[0].extension = NULL; diff --git a/apps/settings.c b/apps/settings.c index 8b826066a1..f2bb542928 100644 --- a/apps/settings.c +++ b/apps/settings.c @@ -143,15 +143,22 @@ static bool read_nvram_data(char* buf, int max_len) /* all good, so read in the settings */ var_count = buf[3]; buf_pos = NVRAM_DATA_START; - for(i=0; (i0) && (buf_pos>F_NVRAM_MASK_SHIFT; if (nvram_bytes) { - memcpy(settings[i].setting,&buf[buf_pos],nvram_bytes); - buf_pos += nvram_bytes; - var_count--; + if ((var_count>0) && (buf_pos