From 7d1dd8df43dd42b2b827f77af0927e40079bdb9a Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Wed, 14 Dec 2016 23:37:10 -0600 Subject: [PATCH] Eliminate heap allocation in FileSystem::format --- src/ox/fs/filesystem.hpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/ox/fs/filesystem.hpp b/src/ox/fs/filesystem.hpp index 42ccc78f3..614c461aa 100644 --- a/src/ox/fs/filesystem.hpp +++ b/src/ox/fs/filesystem.hpp @@ -205,17 +205,15 @@ int FileSystemTemplate::write(uint64_t inode, void *buffer, template uint8_t *FileSystemTemplate::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 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