+ if( cache->Entries[i].ID == ID )\r
+ return cache->Entries[i].Data;\r
+ if( cache->Entries[i].ID == -1 && firstFree == -1 )\r
+ firstFree = i;\r
+ }\r
+ \r
+ if(firstFree == -1) {\r
+ // Use `i` for temp length\r
+ i = sizeof(tFAT_LFNCache) + (cache->NumEntries+1)*sizeof(tFAT_LFNCacheEnt);\r
+ Node->Data = realloc( Node->Data, i );\r
+ if( !Node->Data ) {\r
+ Log_Error("FAT", "malloc() fail, unable to allocate %i for LFN cache", i);\r
+ return NULL;\r
+ }\r
+ cache = Node->Data;\r
+ i = cache->NumEntries;\r
+ cache->NumEntries ++;\r
+ }\r
+ else {\r
+ i = firstFree;\r