mirror of
https://github.com/immich-app/immich.git
synced 2026-05-18 03:10:24 +03:00
fix disposal
This commit is contained in:
@@ -20,9 +20,8 @@ class RemoteImageRequest {
|
|||||||
|
|
||||||
class RemoteImageApiImpl: NSObject, RemoteImageApi {
|
class RemoteImageApiImpl: NSObject, RemoteImageApi {
|
||||||
private static let delegate = RemoteImageApiDelegate()
|
private static let delegate = RemoteImageApiDelegate()
|
||||||
static let cacheDir = FileManager.default.temporaryDirectory.appendingPathComponent(
|
|
||||||
"thumbnails", isDirectory: true)
|
|
||||||
static let session = {
|
static let session = {
|
||||||
|
let cacheDir = FileManager.default.temporaryDirectory.appendingPathComponent("thumbnails", isDirectory: true)
|
||||||
let config = URLSessionConfiguration.default
|
let config = URLSessionConfiguration.default
|
||||||
let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String ?? "unknown"
|
let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String ?? "unknown"
|
||||||
config.httpAdditionalHeaders = ["User-Agent": "Immich_iOS_\(version)"]
|
config.httpAdditionalHeaders = ["User-Agent": "Immich_iOS_\(version)"]
|
||||||
@@ -32,7 +31,7 @@ class RemoteImageApiImpl: NSObject, RemoteImageApi {
|
|||||||
diskCapacity: 1 << 30,
|
diskCapacity: 1 << 30,
|
||||||
directory: cacheDir
|
directory: cacheDir
|
||||||
)
|
)
|
||||||
config.httpMaximumConnectionsPerHost = 16
|
config.httpMaximumConnectionsPerHost = 64
|
||||||
return URLSession(configuration: config, delegate: delegate, delegateQueue: nil)
|
return URLSession(configuration: config, delegate: delegate, delegateQueue: nil)
|
||||||
}()
|
}()
|
||||||
|
|
||||||
|
|||||||
@@ -54,21 +54,21 @@ abstract class ImageRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final descriptor = await ui.ImageDescriptor.encoded(buffer);
|
final descriptor = await ui.ImageDescriptor.encoded(buffer);
|
||||||
|
buffer.dispose();
|
||||||
if (_isCancelled) {
|
if (_isCancelled) {
|
||||||
buffer.dispose();
|
|
||||||
descriptor.dispose();
|
descriptor.dispose();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
final codec = await descriptor.instantiateCodec();
|
final codec = await descriptor.instantiateCodec();
|
||||||
buffer.dispose();
|
|
||||||
descriptor.dispose();
|
|
||||||
if (_isCancelled) {
|
if (_isCancelled) {
|
||||||
|
descriptor.dispose();
|
||||||
codec.dispose();
|
codec.dispose();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
final frame = await codec.getNextFrame();
|
final frame = await codec.getNextFrame();
|
||||||
|
descriptor.dispose();
|
||||||
codec.dispose();
|
codec.dispose();
|
||||||
if (_isCancelled) {
|
if (_isCancelled) {
|
||||||
frame.image.dispose();
|
frame.image.dispose();
|
||||||
@@ -105,16 +105,17 @@ abstract class ImageRequest {
|
|||||||
rowBytes: rowBytes,
|
rowBytes: rowBytes,
|
||||||
pixelFormat: ui.PixelFormat.rgba8888,
|
pixelFormat: ui.PixelFormat.rgba8888,
|
||||||
);
|
);
|
||||||
final codec = await descriptor.instantiateCodec();
|
|
||||||
|
|
||||||
buffer.dispose();
|
buffer.dispose();
|
||||||
descriptor.dispose();
|
|
||||||
|
final codec = await descriptor.instantiateCodec();
|
||||||
if (_isCancelled) {
|
if (_isCancelled) {
|
||||||
|
descriptor.dispose();
|
||||||
codec.dispose();
|
codec.dispose();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
final frame = await codec.getNextFrame();
|
final frame = await codec.getNextFrame();
|
||||||
|
descriptor.dispose();
|
||||||
codec.dispose();
|
codec.dispose();
|
||||||
if (_isCancelled) {
|
if (_isCancelled) {
|
||||||
frame.image.dispose();
|
frame.image.dispose();
|
||||||
|
|||||||
Reference in New Issue
Block a user