Various Fixes

This commit is contained in:
Ilya Laktyushin 2022-01-28 14:48:57 +03:00
parent 43b54be499
commit 363d4d7f3a

View File

@ -20,6 +20,7 @@ private final class VideoStickerFrameSourceCache {
private let queue: Queue private let queue: Queue
private let storeQueue: Queue private let storeQueue: Queue
private let path: String
private let file: ManagedFile private let file: ManagedFile
private let width: Int private let width: Int
private let height: Int private let height: Int
@ -40,13 +41,13 @@ private final class VideoStickerFrameSourceCache {
self.height = height self.height = height
let version: Int = 1 let version: Int = 1
let path = "\(pathPrefix)_\(width)x\(height)-v\(version).vstickerframecache" self.path = "\(pathPrefix)_\(width)x\(height)-v\(version).vstickerframecache"
var file = ManagedFile(queue: queue, path: path, mode: .readwrite) var file = ManagedFile(queue: queue, path: self.path, mode: .readwrite)
if let file = file { if let file = file {
self.file = file self.file = file
} else { } else {
let _ = try? FileManager.default.removeItem(atPath: path) let _ = try? FileManager.default.removeItem(atPath: self.path)
file = ManagedFile(queue: queue, path: path, mode: .readwrite) file = ManagedFile(queue: queue, path: self.path, mode: .readwrite)
if let file = file { if let file = file {
self.file = file self.file = file
} else { } else {
@ -63,6 +64,12 @@ private final class VideoStickerFrameSourceCache {
self.initializeFrameTable() self.initializeFrameTable()
} }
deinit {
if self.frameCount == 0 {
let _ = try? FileManager.default.removeItem(atPath: self.path)
}
}
private func initializeFrameTable() { private func initializeFrameTable() {
var reset = true var reset = true
if let size = self.file.getSize(), size >= maximumFrameCount { if let size = self.file.getSize(), size >= maximumFrameCount {