From ebf56a1926a319534e8042425a91a4b6dd9f2af9 Mon Sep 17 00:00:00 2001 From: Hannes Juutilainen Date: Mon, 26 Aug 2019 12:15:12 +0300 Subject: [PATCH] Fix getting app delegate from background thread --- MunkiAdmin/NSOperation Subclasses/MAManifestScanner.m | 2 +- MunkiAdmin/NSOperation Subclasses/MAPkginfoScanner.m | 2 +- MunkiAdmin/NSOperation Subclasses/MARelationshipScanner.m | 4 ++-- MunkiAdmin/Singletons/MAMunkiRepositoryManager.m | 2 ++ 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/MunkiAdmin/NSOperation Subclasses/MAManifestScanner.m b/MunkiAdmin/NSOperation Subclasses/MAManifestScanner.m index 67fb16d..9415c1d 100644 --- a/MunkiAdmin/NSOperation Subclasses/MAManifestScanner.m +++ b/MunkiAdmin/NSOperation Subclasses/MAManifestScanner.m @@ -457,7 +457,7 @@ - (void)scan { @try { @autoreleasepool { - MAMunkiAdmin_AppDelegate *appDelegate = (MAMunkiAdmin_AppDelegate *)[NSApp delegate]; + MAMunkiAdmin_AppDelegate *appDelegate = (MAMunkiAdmin_AppDelegate *)self.delegate; NSManagedObjectContext *privateContext = self.context; self.currentJobDescription = [NSString stringWithFormat:@"Reading manifest %@", self.fileName]; diff --git a/MunkiAdmin/NSOperation Subclasses/MAPkginfoScanner.m b/MunkiAdmin/NSOperation Subclasses/MAPkginfoScanner.m index 6487d1b..be6f0a3 100644 --- a/MunkiAdmin/NSOperation Subclasses/MAPkginfoScanner.m +++ b/MunkiAdmin/NSOperation Subclasses/MAPkginfoScanner.m @@ -72,8 +72,8 @@ - (void)scan MAMunkiRepositoryManager *repoManager = [MAMunkiRepositoryManager sharedManager]; MACoreDataManager *coreDataManager = [MACoreDataManager sharedManager]; - MAMunkiAdmin_AppDelegate *appDelegate = (MAMunkiAdmin_AppDelegate *)[NSApp delegate]; + MAMunkiAdmin_AppDelegate *appDelegate = (MAMunkiAdmin_AppDelegate *)self.delegate; NSManagedObjectContext *privateContext = self.context; NSEntityDescription *catalogEntityDescr = [NSEntityDescription entityForName:@"Catalog" inManagedObjectContext:privateContext]; diff --git a/MunkiAdmin/NSOperation Subclasses/MARelationshipScanner.m b/MunkiAdmin/NSOperation Subclasses/MARelationshipScanner.m index 7db291c..2c0cdd3 100644 --- a/MunkiAdmin/NSOperation Subclasses/MARelationshipScanner.m +++ b/MunkiAdmin/NSOperation Subclasses/MARelationshipScanner.m @@ -392,7 +392,7 @@ - (void)scanManifests - (void)scanPkginfos { - MAMunkiAdmin_AppDelegate *appDelegate = (MAMunkiAdmin_AppDelegate *)[NSApp delegate]; + MAMunkiAdmin_AppDelegate *appDelegate = (MAMunkiAdmin_AppDelegate *)self.delegate; NSManagedObjectContext *privateContext = self.context; NSEntityDescription *catalogEntityDescr = [NSEntityDescription entityForName:@"Catalog" inManagedObjectContext:privateContext]; @@ -666,7 +666,7 @@ use a default icon (which is the icon for .pkg file type). - (void)main { self.context = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType]; - self.context.parentContext = [(MAMunkiAdmin_AppDelegate *)[NSApp delegate] managedObjectContext]; + self.context.parentContext = [(MAMunkiAdmin_AppDelegate *)self.delegate managedObjectContext]; self.context.undoManager = nil; [self.context performBlockAndWait:^{ @try { diff --git a/MunkiAdmin/Singletons/MAMunkiRepositoryManager.m b/MunkiAdmin/Singletons/MAMunkiRepositoryManager.m index c309981..c3abcd6 100644 --- a/MunkiAdmin/Singletons/MAMunkiRepositoryManager.m +++ b/MunkiAdmin/Singletons/MAMunkiRepositoryManager.m @@ -770,6 +770,7 @@ - (BOOL)duplicateManifest:(ManifestMO *)manifest Scan the new item */ MAManifestScanner *manifestScanner = [[MAManifestScanner alloc] initWithURL:newURL]; + manifestScanner.delegate = [NSApp delegate]; manifestScanner.performFullScan = YES; [manifestScanner start]; succeeded = YES; @@ -804,6 +805,7 @@ - (BOOL)duplicateManifest:(ManifestMO *)manifest toURL:(NSURL *)newURL Scan the new item */ MAManifestScanner *manifestScanner = [[MAManifestScanner alloc] initWithURL:newURL]; + manifestScanner.delegate = [NSApp delegate]; manifestScanner.performFullScan = YES; [manifestScanner start]; succeeded = YES;