Skip to content

Commit 6bc0317

Browse files
ExtremsWinterMute
authored andcommitted
Fix CARD_DeleteEntry
(cherry picked from commit 6bce866) (cherry picked from commit 0b55f76)
1 parent c4e40f0 commit 6bc0317

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

libogc/card.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2927,19 +2927,22 @@ s32 CARD_Delete(s32 chn,const char *filename)
29272927

29282928
s32 CARD_DeleteEntryAsync(s32 chn,card_dir *dir_entry,cardcallback callback)
29292929
{
2930-
s32 ret;
2930+
s32 ret,fileno;
29312931
cardcallback cb = NULL;
29322932
card_block *card = NULL;
29332933
struct card_dat *dirblock = NULL;
29342934
card_direntry *entry = NULL;
29352935
#ifdef _CARD_DEBUG
2936-
printf("CARD_DeleteEntryAsync(%p,%p)\n",dir_entry,callback);
2936+
printf("CARD_DeleteEntryAsync(%d,%p,%p)\n",chn,dir_entry,callback);
29372937
#endif
2938-
if(chn<EXI_CHANNEL_0 || chn>=EXI_CHANNEL_2) return CARD_ERROR_NOCARD;
29392938
if((ret=__card_getcntrlblock(chn,&card))<0) return ret;
2939+
if((ret=__card_getfilenum(card,dir_entry->filename,(const char*)dir_entry->gamecode,(const char*)dir_entry->company,&fileno))<0) {
2940+
__card_putcntrlblock(card,ret);
2941+
return ret;
2942+
}
29402943

29412944
dirblock = __card_getdirblock(card);
2942-
entry = &dirblock->entries[dir_entry->fileno];
2945+
entry = &dirblock->entries[fileno];
29432946

29442947
card->curr_fileblock = entry->block;
29452948
memset(entry,-1,sizeof(card_direntry));
@@ -2958,7 +2961,7 @@ s32 CARD_DeleteEntry(s32 chn,card_dir *dir_entry)
29582961
{
29592962
s32 ret;
29602963
#ifdef _CARD_DEBUG
2961-
printf("CARD_DeleteEntry(%p)\n",dir_entry);
2964+
printf("CARD_DeleteEntry(%d,%p)\n",chn,dir_entry);
29622965
#endif
29632966
if((ret=CARD_DeleteEntryAsync(chn,dir_entry,ogc_card_synccallback))>=0) {
29642967
ret = ogc_card_sync(chn);

0 commit comments

Comments
 (0)