cellSaveData: allocate file list properly

This commit is contained in:
darkf 2014-12-20 03:45:27 -08:00
commit 980b9aaab3

View file

@ -215,11 +215,11 @@ void getSaveDataStat(SaveDataEntry entry, vm::ptr<CellSaveDataStatGet> statGet)
} }
} }
// TODO: Fix the crash statGet->fileList = vm::ptr<CellSaveDataFileStat>::make((u32)Memory.Alloc(sizeof(CellSaveDataFileStat) * fileEntries.size(), 8));
// statGet's fileList doesn't seem to be initiliazed properly, when called by cellSaveDataAutoSave2, thus causing a crash during memcpy. for (u32 i = 0; i < fileEntries.size(); i++) {
statGet->fileList = vm::bptr<CellSaveDataFileStat>::make(be_t<u32>::make((u32)Memory.Alloc(sizeof(CellSaveDataFileStat) * (u32)fileEntries.size(), sizeof(CellSaveDataFileStat)))); CellSaveDataFileStat *dst = &statGet->fileList[i];
for (u32 i = 0; i < fileEntries.size(); i++) memcpy(dst, &fileEntries[i], sizeof(CellSaveDataFileStat));
memcpy(&statGet->fileList[i], &fileEntries[i], sizeof(CellSaveDataFileStat)); }
} }
s32 modifySaveDataFiles(vm::ptr<CellSaveDataFileCallback> funcFile, vm::ptr<CellSaveDataCBResult> result, const std::string& saveDataDir) s32 modifySaveDataFiles(vm::ptr<CellSaveDataFileCallback> funcFile, vm::ptr<CellSaveDataCBResult> result, const std::string& saveDataDir)