restore shuffle install speed back to roughly 30 seconds (#156)

This commit is contained in:
Alex Taber
2018-05-08 18:17:14 -04:00
committed by GitHub
parent 24b12023ca
commit 1c24d08eef

View File

@@ -56,6 +56,8 @@ static Result install_theme_internal(Entry_List_s themes, int installmode)
return MAKERESULT(RL_USAGE, RS_INVALIDARG, RM_COMMON, RD_INVALID_SELECTION); return MAKERESULT(RL_USAGE, RS_INVALIDARG, RM_COMMON, RD_INVALID_SELECTION);
} }
char * padded = NULL;
int shuffle_count = 0; int shuffle_count = 0;
Handle body_cache_handle; Handle body_cache_handle;
@@ -83,13 +85,15 @@ static Result install_theme_internal(Entry_List_s themes, int installmode)
} }
shuffle_body_sizes[shuffle_count] = body_size; shuffle_body_sizes[shuffle_count] = body_size;
FSFILE_Write(body_cache_handle, NULL, BODY_CACHE_SIZE * shuffle_count, body, body_size, FS_WRITE_FLUSH);
padded = calloc(BODY_CACHE_SIZE, sizeof(char));
memcpy(padded, body, body_size);
free(body); free(body);
u8 * blank = calloc(BODY_CACHE_SIZE - body_size, sizeof(u8)); FSFILE_Write(body_cache_handle, NULL, BODY_CACHE_SIZE * shuffle_count, padded, BODY_CACHE_SIZE, FS_WRITE_FLUSH);
if(blank)
FSFILE_Write(body_cache_handle, NULL, (BODY_CACHE_SIZE * shuffle_count) + body_size, blank, BODY_CACHE_SIZE - body_size, FS_WRITE_FLUSH); free(padded);
free(blank); padded = NULL;
} }
if(installmode & THEME_INSTALL_BGM) if(installmode & THEME_INSTALL_BGM)
@@ -111,15 +115,15 @@ static Result install_theme_internal(Entry_List_s themes, int installmode)
Handle bgm_cache_handle; Handle bgm_cache_handle;
FSUSER_OpenFile(&bgm_cache_handle, ArchiveThemeExt, fsMakePath(PATH_ASCII, bgm_cache_path), FS_OPEN_WRITE, 0); FSUSER_OpenFile(&bgm_cache_handle, ArchiveThemeExt, fsMakePath(PATH_ASCII, bgm_cache_path), FS_OPEN_WRITE, 0);
FSFILE_Write(bgm_cache_handle, NULL, 0, music, music_size, FS_WRITE_FLUSH); padded = calloc(BGM_MAX_SIZE, sizeof(char));
memcpy(padded, music, music_size);
free(music); free(music);
u8 * blank = calloc(BGM_MAX_SIZE - music_size, sizeof(u8)); FSFILE_Write(bgm_cache_handle, NULL, 0, padded, BGM_MAX_SIZE, 0);
if(blank)
FSFILE_Write(bgm_cache_handle, NULL, music_size, blank, BGM_MAX_SIZE - music_size, FS_WRITE_FLUSH);
free(blank);
FSFILE_Close(bgm_cache_handle); FSFILE_Close(bgm_cache_handle);
free(padded);
padded = NULL;
} }
shuffle_count++; shuffle_count++;