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

smb_stat: add smb_stat_list_next()

Traversal a huge directory with smb_stat_list_at() is too slow.
Add a new function smb_stat_list_next() to reduce traversal to O(N).

Signed-off-by: Zhai Zhaoxuan <zhaizhaoxuan@xiaomi.com>
Signed-off-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Zhai Zhaoxuan 8 éve
szülő
commit
03e98f930c
3 módosított fájl, 7 hozzáadás és 0 törlés
  1. 1 0
      include/bdsm/smb_stat.h
  2. 1 0
      src/libdsm.sym
  3. 5 0
      src/smb_stat.c

+ 1 - 0
include/bdsm/smb_stat.h

@@ -109,6 +109,7 @@ void            smb_stat_destroy(smb_stat stat);
  */
 size_t            smb_stat_list_count(smb_stat_list list);
 
+smb_stat        smb_stat_list_next(smb_stat_list stat);
 /**
  * @brief Get the element at the given position.
  *

+ 1 - 0
src/libdsm.sym

@@ -36,6 +36,7 @@ smb_stat_destroy
 smb_stat_fd
 smb_stat_get
 smb_stat_list_at
+smb_stat_list_next
 smb_stat_list_count
 smb_stat_list_destroy
 smb_stat_name

+ 5 - 0
src/smb_stat.c

@@ -72,6 +72,11 @@ void            smb_stat_list_destroy(smb_stat_list list)
     }
 }
 
+smb_stat        smb_stat_list_next(smb_stat_list list)
+{
+    return list->next;
+}
+
 smb_stat        smb_stat_list_at(smb_stat_list list, size_t index)
 {
     size_t          pos = 0;