diff options
Diffstat (limited to 'src/storage')
| -rw-r--r-- | src/storage/image-manager/exif.zig | 11 | ||||
| -rw-r--r-- | src/storage/image-manager/root.zig | 14 |
2 files changed, 13 insertions, 12 deletions
diff --git a/src/storage/image-manager/exif.zig b/src/storage/image-manager/exif.zig index 02199cf..d086fed 100644 --- a/src/storage/image-manager/exif.zig +++ b/src/storage/image-manager/exif.zig @@ -12,7 +12,7 @@ pub fn get_date_time(path: [*:0]const u8) ?i64 { const exif_data = exif.exif_data_new_from_file(path); defer exif.exif_data_unref(exif_data); - if (exif_data == null) { + if (exif_data == 0) { return null; } @@ -27,13 +27,16 @@ pub fn get_date_time(path: [*:0]const u8) ?i64 { if (entry) |_| { break; } } - if (entry == null) { + if (entry == 0) { return null; } - const c_data = (entry.?.*).data; + if (entry) |e| { + const c_data = (e.*).data; + return parse_date(c_data); + } - return parse_date(c_data); + return null; } extern fn strptime( diff --git a/src/storage/image-manager/root.zig b/src/storage/image-manager/root.zig index 7fa1607..4188b88 100644 --- a/src/storage/image-manager/root.zig +++ b/src/storage/image-manager/root.zig @@ -60,24 +60,22 @@ pub fn add(self: *Self, allocator: std.mem.Allocator, image: Image) !void { var current = self.timestamp_order.first; - if (current == null) { - const timestamp = try allocator.create(Timestamp); - timestamp.index = self.items.items.len - 1; - self.timestamp_order.append(×tamp.node); - return; - } - while (current) |c| { const index = @as(*Timestamp, @fieldParentPtr("node", c)).index; if (image.timestamp orelse 0 > self.items.items[index].timestamp orelse 0) { const timestamp = try allocator.create(Timestamp); timestamp.index = self.items.items.len - 1; self.timestamp_order.insertBefore(c, ×tamp.node); - break; + return; } current = c.next; } + + const timestamp = try allocator.create(Timestamp); + timestamp.index = self.items.items.len - 1; + self.timestamp_order.append(×tamp.node); + return; } pub fn save( |