Explorar o código

Adopted redundant cache read in lfs_file_relocate

Previously had some custom logic that could be reduced
Christopher Haster %!s(int64=8) %!d(string=hai) anos
pai
achega
931442a784
Modificáronse 1 ficheiros con 4 adicións e 8 borrados
  1. 4 8
      lfs.c

+ 4 - 8
lfs.c

@@ -1207,14 +1207,10 @@ relocate:
     // either read from dirty cache or disk
     for (lfs_off_t i = 0; i < file->off; i++) {
         uint8_t data;
-        if (file->cache.block == file->block && i >= file->cache.off) {
-            data = file->cache.buffer[i - file->cache.off];
-        } else {
-            // just read from disk
-            err = lfs_bd_read(lfs, file->block, i, &data, 1);
-            if (err) {
-                return err;
-            }
+        err = lfs_cache_read(lfs, &lfs->rcache, &file->cache,
+                file->block, i, &data, 1);
+        if (err) {
+            return err;
         }
 
         err = lfs_cache_prog(lfs, &lfs->pcache, &lfs->rcache,