Eliminate heap allocation in FileSystem::format

This commit is contained in:
2016-12-14 23:37:10 -06:00
parent 747f68bb0e
commit 7d1dd8df43
+2 -4
View File
@@ -205,17 +205,15 @@ int FileSystemTemplate<FileStore, FS_TYPE>::write(uint64_t inode, void *buffer,
template<typename FileStore, FsType FS_TYPE>
uint8_t *FileSystemTemplate<FileStore, FS_TYPE>::format(void *buffer, typename FileStore::FsSize_t size, bool useDirectories) {
buffer = FileStore::format((uint8_t*) buffer, size, (uint32_t) FS_TYPE);
auto fs = createFileSystem(buffer);
FileSystemTemplate<FileStore, FS_TYPE> fs(buffer);
if (buffer && useDirectories) {
char dirBuff[sizeof(Directory) + sizeof(DirectoryEntry) + 2];
auto *dir = (Directory*) dirBuff;
dir->files();
fs->write(INODE_ROOT_DIR, dirBuff, useDirectories);
fs.write(INODE_ROOT_DIR, dirBuff, useDirectories, FileType::Directory);
}
delete fs;
return (uint8_t*) buffer;
}
#ifdef _MSC_VER