Parcourir la source

Ext2FS: Remove an unnecessary heap allocation in create_inode().

Andreas Kling il y a 6 ans
Parent
commit
c3cc318028
1 fichiers modifiés avec 15 ajouts et 15 suppressions
  1. 15 15
      Kernel/Ext2FileSystem.cpp

+ 15 - 15
Kernel/Ext2FileSystem.cpp

@@ -1122,24 +1122,24 @@ RetainPtr<Inode> Ext2FS::create_inode(InodeIdentifier parent_id, const String& n
         initialLinksCount = 1;
 
     auto timestamp = RTC::now();
-    auto e2inode = make<ext2_inode>();
-    memset(e2inode.ptr(), 0, sizeof(ext2_inode));
-    e2inode->i_mode = mode;
-    e2inode->i_uid = 0;
-    e2inode->i_size = size;
-    e2inode->i_atime = timestamp;
-    e2inode->i_ctime = timestamp;
-    e2inode->i_mtime = timestamp;
-    e2inode->i_dtime = 0;
-    e2inode->i_gid = 0;
-    e2inode->i_links_count = initialLinksCount;
-
-    success = write_block_list_for_inode(inode_id, *e2inode, blocks);
+    ext2_inode e2inode;
+    memset(&e2inode, 0, sizeof(ext2_inode));
+    e2inode.i_mode = mode;
+    e2inode.i_uid = 0;
+    e2inode.i_size = size;
+    e2inode.i_atime = timestamp;
+    e2inode.i_ctime = timestamp;
+    e2inode.i_mtime = timestamp;
+    e2inode.i_dtime = 0;
+    e2inode.i_gid = 0;
+    e2inode.i_links_count = initialLinksCount;
+
+    success = write_block_list_for_inode(inode_id, e2inode, blocks);
     ASSERT(success);
 
     dbgprintf("Ext2FS: writing initial metadata for inode %u\n", inode_id);
-    e2inode->i_flags = 0;
-    success = write_ext2_inode(inode_id, *e2inode);
+    e2inode.i_flags = 0;
+    success = write_ext2_inode(inode_id, e2inode);
     ASSERT(success);
 
     {