[shotwell: 1/2] (joe) hang metadata on the rawreader to avoid re-parsing




commit 979f26a1347b39461722e9c9ef15caa6285b6b9f
Author: Joseph Bylund <joseph bylund gmail com>
Date:   Thu Apr 1 18:09:35 2021 -0400

    (joe) hang metadata on the rawreader to avoid re-parsing

 src/photos/RawSupport.vala | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)
---
diff --git a/src/photos/RawSupport.vala b/src/photos/RawSupport.vala
index d457aa76..09ea0829 100644
--- a/src/photos/RawSupport.vala
+++ b/src/photos/RawSupport.vala
@@ -210,15 +210,19 @@ public class RawSniffer : PhotoFileSniffer {
 }
 
 public class RawReader : PhotoFileReader {
+    private PhotoMetadata? cached_metadata = null;
+
     public RawReader(string filepath) {
         base (filepath, PhotoFileFormat.RAW);
     }
     
     public override PhotoMetadata read_metadata() throws Error {
-        PhotoMetadata metadata = new PhotoMetadata();
-        metadata.read_from_file(get_file());
-        
-        return metadata;
+        if (cached_metadata == null) {
+            PhotoMetadata metadata = new PhotoMetadata();
+            metadata.read_from_file(get_file());
+            cached_metadata = metadata;
+        }
+        return cached_metadata;
     }
     
     public override Gdk.Pixbuf unscaled_read() throws Error {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]