Forráskód Böngészése

Kernel: Don't create a String every time we look up a Custody by name

Andreas Kling 6 éve
szülő
commit
b020a5e7ce
2 módosított fájl, 8 hozzáadás és 11 törlés
  1. 4 7
      Kernel/FileSystem/Custody.cpp
  2. 4 4
      Kernel/FileSystem/Custody.h

+ 4 - 7
Kernel/FileSystem/Custody.cpp

@@ -12,7 +12,7 @@ static Lockable<InlineLinkedList<Custody>>& all_custodies()
     return *list;
 }
 
-Custody* Custody::get_if_cached(Custody* parent, const String& name)
+Custody* Custody::get_if_cached(Custody* parent, const StringView& name)
 {
     LOCKER(all_custodies().lock());
     for (auto& custody : all_custodies().resource()) {
@@ -26,14 +26,11 @@ Custody* Custody::get_if_cached(Custody* parent, const String& name)
     return nullptr;
 }
 
-NonnullRefPtr<Custody> Custody::get_or_create(Custody* parent, const String& name, Inode& inode)
+NonnullRefPtr<Custody> Custody::get_or_create(Custody* parent, const StringView& name, Inode& inode)
 {
     if (RefPtr<Custody> cached_custody = get_if_cached(parent, name)) {
         if (&cached_custody->inode() != &inode) {
-            dbgprintf("WTF! cached custody for name '%s' has inode=%s, new inode=%s\n",
-                name.characters(),
-                cached_custody->inode().identifier().to_string().characters(),
-                inode.identifier().to_string().characters());
+            dbg() << "WTF! Cached custody for name '" << name << "' has inode=" << cached_custody->inode().identifier() << ", new inode=" << inode.identifier();
         }
         ASSERT(&cached_custody->inode() == &inode);
         return *cached_custody;
@@ -41,7 +38,7 @@ NonnullRefPtr<Custody> Custody::get_or_create(Custody* parent, const String& nam
     return create(parent, name, inode);
 }
 
-Custody::Custody(Custody* parent, const String& name, Inode& inode)
+Custody::Custody(Custody* parent, const StringView& name, Inode& inode)
     : m_parent(parent)
     , m_name(name)
     , m_inode(inode)

+ 4 - 4
Kernel/FileSystem/Custody.h

@@ -14,9 +14,9 @@ class VFS;
 class Custody : public RefCounted<Custody>
     , public InlineLinkedListNode<Custody> {
 public:
-    static Custody* get_if_cached(Custody* parent, const String& name);
-    static NonnullRefPtr<Custody> get_or_create(Custody* parent, const String& name, Inode&);
-    static NonnullRefPtr<Custody> create(Custody* parent, const String& name, Inode& inode)
+    static Custody* get_if_cached(Custody* parent, const StringView& name);
+    static NonnullRefPtr<Custody> get_or_create(Custody* parent, const StringView& name, Inode&);
+    static NonnullRefPtr<Custody> create(Custody* parent, const StringView& name, Inode& inode)
     {
         return adopt(*new Custody(parent, name, inode));
     }
@@ -42,7 +42,7 @@ public:
     Custody* m_prev { nullptr };
 
 private:
-    Custody(Custody* parent, const String& name, Inode&);
+    Custody(Custody* parent, const StringView& name, Inode&);
 
     RefPtr<Custody> m_parent;
     String m_name;