mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2026-06-18 14:40:56 +00:00
Fixed a concurrent modification error in caching app images
This commit is contained in:
@@ -50,21 +50,25 @@
|
|||||||
- (void) retrieveAssetForApp:(App*)app useCache:(BOOL)useCache {
|
- (void) retrieveAssetForApp:(App*)app useCache:(BOOL)useCache {
|
||||||
UIImage* appImage = nil;
|
UIImage* appImage = nil;
|
||||||
if (useCache) {
|
if (useCache) {
|
||||||
|
@synchronized(_imageCache) {
|
||||||
UIImage* cachedImage = [_imageCache objectForKey:app.appId];
|
UIImage* cachedImage = [_imageCache objectForKey:app.appId];
|
||||||
if (cachedImage != nil) {
|
if (cachedImage != nil) {
|
||||||
appImage = cachedImage;
|
appImage = cachedImage;
|
||||||
app.appImage = appImage;
|
app.appImage = appImage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (appImage == nil) {
|
if (appImage == nil) {
|
||||||
HttpManager* hMan = [[HttpManager alloc] initWithHost:_host.address uniqueId:_uniqueId deviceName:deviceName cert:_cert];
|
HttpManager* hMan = [[HttpManager alloc] initWithHost:_host.address uniqueId:_uniqueId deviceName:deviceName cert:_cert];
|
||||||
NSData* appAsset = [hMan executeRequestSynchronously:[hMan newAppAssetRequestWithAppId:app.appId]];
|
NSData* appAsset = [hMan executeRequestSynchronously:[hMan newAppAssetRequestWithAppId:app.appId]];
|
||||||
appImage = [UIImage imageWithData:appAsset];
|
appImage = [UIImage imageWithData:appAsset];
|
||||||
app.appImage = appImage;
|
app.appImage = appImage;
|
||||||
if (appImage != nil) {
|
if (appImage != nil) {
|
||||||
|
@synchronized(_imageCache) {
|
||||||
[_imageCache setObject:appImage forKey:app.appId];
|
[_imageCache setObject:appImage forKey:app.appId];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
[self performSelectorOnMainThread:@selector(sendCallBackForApp:) withObject:app waitUntilDone:NO];
|
[self performSelectorOnMainThread:@selector(sendCallBackForApp:) withObject:app waitUntilDone:NO];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user