mirror of
https://github.com/wiiu-env/libfat.git
synced 2024-11-22 09:59:18 +01:00
replace another buffer with an allocation (dimok)
This commit is contained in:
parent
d5f437723f
commit
6407426a76
@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
#include "file_allocation_table.h"
|
#include "file_allocation_table.h"
|
||||||
#include "partition.h"
|
#include "partition.h"
|
||||||
|
#include "mem_allocate.h"
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -269,7 +270,7 @@ If an error occurs, return CLUSTER_ERROR
|
|||||||
uint32_t _FAT_fat_linkFreeClusterCleared (PARTITION* partition, uint32_t cluster) {
|
uint32_t _FAT_fat_linkFreeClusterCleared (PARTITION* partition, uint32_t cluster) {
|
||||||
uint32_t newCluster;
|
uint32_t newCluster;
|
||||||
uint32_t i;
|
uint32_t i;
|
||||||
uint8_t emptySector[partition->bytesPerSector];
|
uint8_t *emptySector;
|
||||||
|
|
||||||
// Link the cluster
|
// Link the cluster
|
||||||
newCluster = _FAT_fat_linkFreeCluster(partition, cluster);
|
newCluster = _FAT_fat_linkFreeCluster(partition, cluster);
|
||||||
@ -278,6 +279,8 @@ uint32_t _FAT_fat_linkFreeClusterCleared (PARTITION* partition, uint32_t cluster
|
|||||||
return CLUSTER_ERROR;
|
return CLUSTER_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
emptySector = (uint8_t*) _FAT_mem_allocate(partition->bytesPerSector);
|
||||||
|
|
||||||
// Clear all the sectors within the cluster
|
// Clear all the sectors within the cluster
|
||||||
memset (emptySector, 0, partition->bytesPerSector);
|
memset (emptySector, 0, partition->bytesPerSector);
|
||||||
for (i = 0; i < partition->sectorsPerCluster; i++) {
|
for (i = 0; i < partition->sectorsPerCluster; i++) {
|
||||||
@ -286,6 +289,8 @@ uint32_t _FAT_fat_linkFreeClusterCleared (PARTITION* partition, uint32_t cluster
|
|||||||
1, emptySector);
|
1, emptySector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_FAT_mem_free(emptySector);
|
||||||
|
|
||||||
return newCluster;
|
return newCluster;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user