]> granicus.if.org Git - handbrake/commitdiff
MacGui: do not load a job from disk if one or more job objects are missing.
authorDamiano Galassi <damiog@gmail.com>
Fri, 21 Apr 2017 11:48:25 +0000 (13:48 +0200)
committerDamiano Galassi <damiog@gmail.com>
Fri, 21 Apr 2017 11:50:48 +0000 (13:50 +0200)
macosx/HBAudio.m
macosx/HBAudioDefaults.m
macosx/HBChapter.m
macosx/HBCodingUtilities.h
macosx/HBFilters.m
macosx/HBJob.m
macosx/HBSubtitles.m
macosx/HBSubtitlesDefaults.m
macosx/HBVideo.m

index f7116d8a37ba22e0172cff034480cd78e2091437..cb0c5a294ee70afff735549adcc16aa441fc3210 100644 (file)
@@ -286,9 +286,12 @@ NSString *HBAudioChangedNotification = @"HBAudioChangedNotification";
         track.delegate = self;
     }
 
-    decodeObject(_defaults, HBAudioDefaults);
+    decodeObjectOrFail(_defaults, HBAudioDefaults);
 
     return self;
+
+fail:
+    return nil;
 }
 
 #pragma mark - Presets
index 204d13967eb3ae60c8c4a63437b6d5e845f831e6..0c714460cc93dc334ba830b4666ac52d52c1f5de 100644 (file)
     self = [super init];
 
     decodeInteger(_trackSelectionBehavior);
-    decodeObject(_trackSelectionLanguages, NSMutableArray);
+    decodeObjectOrFail(_trackSelectionLanguages, NSMutableArray);
 
     decodeCollectionOfObjects(_tracksArray, NSMutableArray, HBAudioTrackPreset);
 
     decodeBool(_secondaryEncoderMode);
 
     return self;
+
+fail:
+    return nil;
 }
 
 #pragma mark KVC
index b3badef0c485a40eed8335ced4f45395e9ad9dc8..d33ec942784edd1cddfa5ebef89bc153a79d54e4 100644 (file)
 
     if (version == 1 && (self = [self init]))
     {
-        decodeObject(_title, NSString);
-        decodeObject(_duration, NSString);
+        decodeObjectOrFail(_title, NSString);
+        decodeObjectOrFail(_duration, NSString);
         decodeInteger(_index);
 
         return self;
     }
-    
+
+fail:
     return nil;
 }
 
index cc92f9b6e9a80fa2dc4254c705e2a1f41d11e4aa..c880e08aa6bc500546dd05c0206962bdc70b4800 100644 (file)
@@ -26,7 +26,7 @@
 #define decodeCollectionOfObjects3(x, cl, objectcl, objectcl2, objectcl3) x = [HBCodingUtilities decodeObjectOfClasses:[NSSet setWithObjects:[cl class], [objectcl class], [objectcl2 class], [objectcl3 class], nil] forKey:OBJC_STRINGIFY(x) decoder:decoder];
 
 
-#define decodeObjectOrFail(x, class) x = [HBCodingUtilities decodeObjectOfClass:class forKey:OBJC_STRINGIFY(x) decoder:decoder]; if (x == nil) {NSLog(@"Failed to decode: %@", OBJC_STRINGIFY(x)); goto fail;}
+#define decodeObjectOrFail(x, cl) x = [HBCodingUtilities decodeObjectOfClass:[cl class] forKey:OBJC_STRINGIFY(x) decoder:decoder]; if (x == nil) {NSLog(@"Failed to decode: %@", OBJC_STRINGIFY(x)); goto fail;}
 
 NS_ASSUME_NONNULL_BEGIN
 
index 981b753100b2945fdf9bd1dc3b4dd6fe539cde1d..12a943953bbb242a26ec692fcf86ce6b71f1afb9 100644 (file)
@@ -426,20 +426,20 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
 {
     self = [super init];
 
-    decodeObject(_detelecine, NSString);
-    decodeObject(_detelecineCustomString, NSString);
+    decodeObjectOrFail(_detelecine, NSString);
+    decodeObjectOrFail(_detelecineCustomString, NSString);
 
-    decodeObject(_combDetection, NSString);
-    decodeObject(_combDetectionCustomString, NSString);
+    decodeObjectOrFail(_combDetection, NSString);
+    decodeObjectOrFail(_combDetectionCustomString, NSString);
 
-    decodeObject(_deinterlace, NSString);
-    decodeObject(_deinterlacePreset, NSString)
-    decodeObject(_deinterlaceCustomString, NSString);
+    decodeObjectOrFail(_deinterlace, NSString);
+    decodeObjectOrFail(_deinterlacePreset, NSString)
+    decodeObjectOrFail(_deinterlaceCustomString, NSString);
 
-    decodeObject(_denoise, NSString);
-    decodeObject(_denoisePreset, NSString);
-    decodeObject(_denoiseTune, NSString);
-    decodeObject(_denoiseCustomString, NSString);
+    decodeObjectOrFail(_denoise, NSString);
+    decodeObjectOrFail(_denoisePreset, NSString);
+    decodeObjectOrFail(_denoiseTune, NSString);
+    decodeObjectOrFail(_denoiseCustomString, NSString);
 
     decodeInt(_deblock);
     decodeBool(_grayscale);
@@ -449,6 +449,9 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
     _notificationsEnabled = YES;
 
     return self;
+
+fail:
+    return nil;
 }
 
 #pragma mark - Presets and queue
index 15f77ede20346abba97be87f0943c1a3b6d50216..5d01987b694dc31342f7585e37d76e439747f77c 100644 (file)
@@ -377,10 +377,10 @@ NSString *HBChaptersChangedNotification  = @"HBChaptersChangedNotification";
     if (version == 3 && (self = [super init]))
     {
         decodeInt(_state);
-        decodeObject(_name, NSString);
-        decodeObject(_presetName, NSString);
+        decodeObjectOrFail(_name, NSString);
+        decodeObjectOrFail(_presetName, NSString);
         decodeInt(_titleIdx);
-        decodeObject(_uuid, NSString);
+        decodeObjectOrFail(_uuid, NSString);
 
 #ifdef __SANDBOX_ENABLED__
         _fileURLBookmark = [HBCodingUtilities decodeObjectOfClass:[NSData class] forKey:@"_fileURLBookmark" decoder:decoder];
@@ -417,15 +417,15 @@ NSString *HBChaptersChangedNotification  = @"HBChaptersChangedNotification";
         decodeBool(_mp4HttpOptimize);
         decodeBool(_mp4iPodCompatible);
 
-        decodeObject(_range, HBRange);
-        decodeObject(_video, HBVideo);
-        decodeObject(_picture, HBPicture);
-        decodeObject(_filters, HBFilters);
+        decodeObjectOrFail(_range, HBRange);
+        decodeObjectOrFail(_video, HBVideo);
+        decodeObjectOrFail(_picture, HBPicture);
+        decodeObjectOrFail(_filters, HBFilters);
 
         _video.job = self;
 
-        decodeObject(_audio, HBAudio);
-        decodeObject(_subtitles, HBSubtitles);
+        decodeObjectOrFail(_audio, HBAudio);
+        decodeObjectOrFail(_subtitles, HBSubtitles);
 
         _audio.job = self;
         _video.job = self;
@@ -436,6 +436,7 @@ NSString *HBChaptersChangedNotification  = @"HBChaptersChangedNotification";
         return self;
     }
 
+fail:
     return nil;
 }
 
index f0d22407809075db09cb73d8d6a324c532828148..235ceec1e9d05aa9c4fe16cebd0def5fd0030a7a 100644 (file)
@@ -513,9 +513,12 @@ extern NSString *keySubTrackSrtFileURLBookmark;
         track.delegate = self;
     }
 
-    decodeObject(_defaults, HBSubtitlesDefaults);
+    decodeObjectOrFail(_defaults, HBSubtitlesDefaults);
 
     return self;
+
+fail:
+    return nil;
 }
 
 #pragma mark - Presets
index fa1044a6970c2608c5f0f0613b847c16c83e0a59..c6e8179d7d260ee81e177ed84f0630a446e89358 100644 (file)
     self = [super init];
 
     decodeInteger(_trackSelectionBehavior);
-    decodeObject(_trackSelectionLanguages, NSMutableArray);
+    decodeObjectOrFail(_trackSelectionLanguages, NSMutableArray);
 
     decodeBool(_addForeignAudioSearch);
     decodeBool(_addForeignAudioSubtitle);
     decodeBool(_burnInBluraySubtitles);
 
     return self;
+
+fail:
+    return nil;
 }
 
 
index 5cb7d642d56e4d9f432e6b97b8a6b1cea7f2bcaf..21716b0bf70ce4aacb365cb77f40b6dc62a77528 100644 (file)
@@ -516,18 +516,21 @@ NSString * const HBVideoChangedNotification = @"HBVideoChangedNotification";
     decodeBool(_turboTwoPass);
 
     decodeBool(_advancedOptions);
-    decodeObject(_preset, NSString);
-    decodeObject(_tune, NSString);
-    decodeObject(_profile, NSString);
-    decodeObject(_level, NSString);
+    decodeObjectOrFail(_preset, NSString);
+    decodeObjectOrFail(_tune, NSString);
+    decodeObjectOrFail(_profile, NSString);
+    decodeObjectOrFail(_level, NSString);
 
-    decodeObject(_videoOptionExtra, NSString);
+    decodeObjectOrFail(_videoOptionExtra, NSString);
 
     decodeBool(_fastDecode);
 
     _notificationsEnabled = YES;
 
     return self;
+
+fail:
+    return nil;
 }
 
 #pragma mark - Various conversion methods from dict/preset/queue/etc