summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--macosx/HBAddPresetController.h4
-rw-r--r--macosx/HBAdvancedController.h2
-rw-r--r--macosx/HBAudioController.h2
-rw-r--r--macosx/HBAudioTrack.h4
-rw-r--r--macosx/HBChapterTitlesController.h2
-rw-r--r--macosx/HBCodingUtilities.h6
-rw-r--r--macosx/HBController.m2
-rw-r--r--macosx/HBCore.h14
-rw-r--r--macosx/HBDVDDetector.h11
-rw-r--r--macosx/HBDVDDetector.m4
-rw-r--r--macosx/HBFilters.h4
-rw-r--r--macosx/HBJob.h6
-rw-r--r--macosx/HBPicture.h3
-rw-r--r--macosx/HBPictureController.h2
-rw-r--r--macosx/HBPreset.h9
-rw-r--r--macosx/HBPreset.m5
-rw-r--r--macosx/HBPresetsManager.h8
-rw-r--r--macosx/HBPresetsViewController.h4
-rw-r--r--macosx/HBPreviewController.h2
-rw-r--r--macosx/HBPreviewGenerator.h8
-rw-r--r--macosx/HBPreviewGenerator.m4
-rw-r--r--macosx/HBQueueController.h9
-rw-r--r--macosx/HBQueueController.m6
-rw-r--r--macosx/HBRange.h6
-rw-r--r--macosx/HBStateFormatter.h6
-rw-r--r--macosx/HBSubtitlesController.h2
-rw-r--r--macosx/HBTitle.h4
-rw-r--r--macosx/HBTitleSelectionController.h4
-rw-r--r--macosx/HBTitleSelectionController.m2
-rw-r--r--macosx/HBTreeNode.h9
-rw-r--r--macosx/HBUtilities.h7
-rw-r--r--macosx/HBUtilities.m2
-rw-r--r--macosx/HBVideo.h6
-rw-r--r--macosx/HBVideoController.h2
-rw-r--r--macosx/HBVideoController.m2
35 files changed, 125 insertions, 48 deletions
diff --git a/macosx/HBAddPresetController.h b/macosx/HBAddPresetController.h
index 63be604d5..7162767fd 100644
--- a/macosx/HBAddPresetController.h
+++ b/macosx/HBAddPresetController.h
@@ -8,6 +8,8 @@
#import <Cocoa/Cocoa.h>
+NS_ASSUME_NONNULL_BEGIN
+
@class HBPreset;
@interface HBAddPresetController : NSWindowController
@@ -17,3 +19,5 @@
@property (nonatomic, readonly) HBPreset *preset;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBAdvancedController.h b/macosx/HBAdvancedController.h
index 8cf5a9ccc..f2f8714cb 100644
--- a/macosx/HBAdvancedController.h
+++ b/macosx/HBAdvancedController.h
@@ -13,7 +13,7 @@
*/
@interface HBAdvancedController : NSViewController
-@property (nonatomic, readwrite, strong) HBVideo *videoSettings;
+@property (nonatomic, readwrite, weak) HBVideo *videoSettings;
@property (nonatomic, readwrite, getter=isHidden) BOOL hidden;
@property (nonatomic, readwrite, getter=isEnabled) BOOL enabled;
diff --git a/macosx/HBAudioController.h b/macosx/HBAudioController.h
index 6af06693c..1385d15d2 100644
--- a/macosx/HBAudioController.h
+++ b/macosx/HBAudioController.h
@@ -13,6 +13,6 @@
*/
@interface HBAudioController : NSViewController
-@property (nonatomic, readwrite, unsafe_unretained) HBAudio *audio;
+@property (nonatomic, readwrite, weak) HBAudio *audio;
@end
diff --git a/macosx/HBAudioTrack.h b/macosx/HBAudioTrack.h
index 76590973f..f46f854f5 100644
--- a/macosx/HBAudioTrack.h
+++ b/macosx/HBAudioTrack.h
@@ -41,8 +41,8 @@ extern NSString *keyAudioBitrate;
@property (nonatomic, strong) NSNumber *drc;
@property (nonatomic, strong) NSNumber *gain;
@property (nonatomic, strong) NSNumber *videoContainerTag;
-@property (nonatomic, unsafe_unretained) id<HBAudioTrackDataSource> dataSource;
-@property (nonatomic, unsafe_unretained) id<HBAudioTrackDelegate> delegate;
+@property (nonatomic, weak) id<HBAudioTrackDataSource> dataSource;
+@property (nonatomic, weak) id<HBAudioTrackDelegate> delegate;
@property (nonatomic, strong) NSMutableArray *codecs;
@property (nonatomic, strong) NSMutableArray *mixdowns;
diff --git a/macosx/HBChapterTitlesController.h b/macosx/HBChapterTitlesController.h
index 5cf628a49..106261615 100644
--- a/macosx/HBChapterTitlesController.h
+++ b/macosx/HBChapterTitlesController.h
@@ -13,6 +13,6 @@
*/
@interface HBChapterTitlesController : NSViewController
-@property (nonatomic, readwrite, unsafe_unretained) HBJob *job;
+@property (nonatomic, readwrite, weak) HBJob *job;
@end
diff --git a/macosx/HBCodingUtilities.h b/macosx/HBCodingUtilities.h
index fd825971d..c8eb3763e 100644
--- a/macosx/HBCodingUtilities.h
+++ b/macosx/HBCodingUtilities.h
@@ -21,6 +21,8 @@
#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;}
+NS_ASSUME_NONNULL_BEGIN
+
@interface HBCodingUtilities : NSObject
/**
@@ -37,6 +39,8 @@
*
* @return the decoder object.
*/
-+ (id)decodeObjectOfClass:(Class)aClass forKey:(NSString *)key decoder:(NSCoder *)decoder;
++ (nullable id)decodeObjectOfClass:(Class)aClass forKey:(NSString *)key decoder:(NSCoder *)decoder;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBController.m b/macosx/HBController.m
index 5074eded0..076a7a336 100644
--- a/macosx/HBController.m
+++ b/macosx/HBController.m
@@ -58,7 +58,7 @@
/// The HBCore used for scanning.
@property (nonatomic, strong) HBCore *core;
-@property (unsafe_unretained, nonatomic, readwrite) NSColor *labelColor;
+@property (nonatomic, readwrite) NSColor *labelColor;
@end
diff --git a/macosx/HBCore.h b/macosx/HBCore.h
index 58ecb43ca..1d7a4e279 100644
--- a/macosx/HBCore.h
+++ b/macosx/HBCore.h
@@ -11,6 +11,8 @@
@class HBPicture;
@class HBTitle;
+NS_ASSUME_NONNULL_BEGIN
+
// These constants specify the current state of HBCore.
typedef NS_ENUM(NSUInteger, HBState) {
HBStateIdle = HB_STATE_IDLE, ///< HB is doing nothing
@@ -116,7 +118,7 @@ typedef void (^HBCoreCompletionHandler)(BOOL success);
/**
* An array of HBTitles found by the latest scan.
*/
-@property (nonatomic, readonly) NSArray *titles;
+@property (nonatomic, readonly, nullable) NSArray *titles;
/**
* This function converts an image created by libhb (specified via index)
@@ -129,10 +131,10 @@ typedef void (^HBCoreCompletionHandler)(BOOL success);
*
* @return a CGImageRef of the wanted image, NULL if the index is out of bounds.
*/
-- (CGImageRef)copyImageAtIndex:(NSUInteger)index
- forTitle:(HBTitle *)title
- pictureFrame:(HBPicture *)frame
- deinterlace:(BOOL)deinterlace CF_RETURNS_RETAINED;
+- (nullable CGImageRef)copyImageAtIndex:(NSUInteger)index
+ forTitle:(HBTitle *)title
+ pictureFrame:(HBPicture *)frame
+ deinterlace:(BOOL)deinterlace CF_RETURNS_RETAINED;
/**
* Initiates an asynchronous encode operation and returns immediately.
@@ -162,3 +164,5 @@ typedef void (^HBCoreCompletionHandler)(BOOL success);
- (void)resume;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBDVDDetector.h b/macosx/HBDVDDetector.h
index 6e761f8de..3e7692a7b 100644
--- a/macosx/HBDVDDetector.h
+++ b/macosx/HBDVDDetector.h
@@ -7,14 +7,11 @@
* It may be used under the terms of the GNU General Public License.
*/
-#import <Cocoa/Cocoa.h>
+#import <Foundation/Foundation.h>
+NS_ASSUME_NONNULL_BEGIN
@interface HBDVDDetector : NSObject
-{
- NSString *path;
- NSString *bsdName;
-}
+ (HBDVDDetector *)detectorForPath: (NSString *)aPath;
- (HBDVDDetector *)initWithPath: (NSString *)aPath NS_DESIGNATED_INITIALIZER;
@@ -22,4 +19,6 @@
@property (nonatomic, getter=isVideoDVD, readonly) BOOL videoDVD;
@property (nonatomic, readonly, copy) NSString *devicePath;
-@end \ No newline at end of file
+@end
+
+NS_ASSUME_NONNULL_END \ No newline at end of file
diff --git a/macosx/HBDVDDetector.m b/macosx/HBDVDDetector.m
index 8db9d36f2..50be26b61 100644
--- a/macosx/HBDVDDetector.m
+++ b/macosx/HBDVDDetector.m
@@ -28,6 +28,10 @@
@implementation HBDVDDetector
+{
+ NSString *path;
+ NSString *bsdName;
+}
+ (HBDVDDetector *)detectorForPath: (NSString *)aPath
{
diff --git a/macosx/HBFilters.h b/macosx/HBFilters.h
index 9d13a018b..1d1cdb9ff 100644
--- a/macosx/HBFilters.h
+++ b/macosx/HBFilters.h
@@ -7,6 +7,8 @@
#import <Foundation/Foundation.h>
#import "HBPresetCoding.h"
+NS_ASSUME_NONNULL_BEGIN
+
extern NSString * const HBFiltersChangedNotification;
/**
@@ -34,3 +36,5 @@ extern NSString * const HBFiltersChangedNotification;
@property (nonatomic, readwrite) BOOL grayscale;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBJob.h b/macosx/HBJob.h
index baaeda771..d9aca7953 100644
--- a/macosx/HBJob.h
+++ b/macosx/HBJob.h
@@ -19,6 +19,8 @@
#import "HBDistributedArray.h"
+NS_ASSUME_NONNULL_BEGIN
+
extern NSString *HBContainerChangedNotification;
extern NSString *HBChaptersChangedNotification;
@@ -45,7 +47,7 @@ typedef NS_ENUM(NSUInteger, HBJobState){
/// Current state of the job.
@property (nonatomic, readwrite) HBJobState state;
-@property (nonatomic, readwrite, assign) HBTitle *title;
+@property (nonatomic, readwrite, assign, nullable) HBTitle *title;
@property (nonatomic, readonly) int titleIdx;
@property (nonatomic, readwrite, copy) NSString *presetName;
@@ -75,3 +77,5 @@ typedef NS_ENUM(NSUInteger, HBJobState){
@property (nonatomic, readonly) NSMutableArray *chapterTitles;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBPicture.h b/macosx/HBPicture.h
index cc0f3dfd8..a717a4c69 100644
--- a/macosx/HBPicture.h
+++ b/macosx/HBPicture.h
@@ -9,6 +9,8 @@
@class HBTitle;
+NS_ASSUME_NONNULL_BEGIN
+
extern NSString * const HBPictureChangedNotification;
/**
@@ -49,3 +51,4 @@ extern NSString * const HBPictureChangedNotification;
@end
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBPictureController.h b/macosx/HBPictureController.h
index 1460fa9e2..07dbfe40b 100644
--- a/macosx/HBPictureController.h
+++ b/macosx/HBPictureController.h
@@ -14,6 +14,6 @@
@property (nonatomic, readwrite, strong) HBFilters *filters;
@property (nonatomic, readwrite, strong) HBPicture *picture;
-@property (nonatomic, readwrite, unsafe_unretained) NSWindowController *previewWindow;
+@property (nonatomic, readwrite, weak) NSWindowController *previewWindow;
@end
diff --git a/macosx/HBPreset.h b/macosx/HBPreset.h
index 1b74bcd3a..10cf192d5 100644
--- a/macosx/HBPreset.h
+++ b/macosx/HBPreset.h
@@ -7,6 +7,8 @@
#import <Foundation/Foundation.h>
#import "HBTreeNode.h"
+NS_ASSUME_NONNULL_BEGIN
+
typedef NS_ENUM(NSUInteger, HBPresetFormat) {
HBPresetFormatPlist,
HBPresetFormatJson,
@@ -60,7 +62,7 @@ typedef NS_ENUM(NSUInteger, HBPresetFormat) {
/**
* A long textual description of the preset.
*/
-@property (nonatomic, copy) NSString *presetDescription;
+@property (nonatomic, copy, nullable) NSString *presetDescription;
/**
* Whether the preset is one of the HandBrake built-in ones or not.
@@ -75,7 +77,7 @@ typedef NS_ENUM(NSUInteger, HBPresetFormat) {
/**
* The actual content of the preset.
*/
-@property (nonatomic, strong) NSDictionary *content;
+@property (nonatomic, strong, nullable) NSDictionary *content;
/**
* A dictionary representation of the preset.
@@ -83,3 +85,6 @@ typedef NS_ENUM(NSUInteger, HBPresetFormat) {
@property (readonly, copy) NSDictionary *dictionary;
@end
+
+NS_ASSUME_NONNULL_END
+
diff --git a/macosx/HBPreset.m b/macosx/HBPreset.m
index 4fcb82495..12c9017f0 100644
--- a/macosx/HBPreset.m
+++ b/macosx/HBPreset.m
@@ -29,7 +29,10 @@
_name = [title copy];
_isBuiltIn = builtIn;
_content = [content copy];
- _presetDescription = [content[@"PresetDescription"] copy];
+ if ([content[@"PresetDescription"] isKindOfClass:[NSString class]])
+ {
+ _presetDescription = [content[@"PresetDescription"] copy];
+ }
}
return self;
}
diff --git a/macosx/HBPresetsManager.h b/macosx/HBPresetsManager.h
index 4921768e9..f9fbd9770 100644
--- a/macosx/HBPresetsManager.h
+++ b/macosx/HBPresetsManager.h
@@ -4,7 +4,9 @@
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License. */
-#import <Cocoa/Cocoa.h>
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
@class HBPreset;
@@ -64,7 +66,7 @@ extern NSString *HBPresetsChangedNotification;
*
* @return The index path whose corresponding value is equal to the preset. Returns nil if not found.
*/
-- (NSIndexPath *)indexPathOfPreset:(HBPreset *)preset;
+- (nullable NSIndexPath *)indexPathOfPreset:(HBPreset *)preset;
/**
* Adds back the built in presets.
@@ -72,3 +74,5 @@ extern NSString *HBPresetsChangedNotification;
- (void)generateBuiltInPresets;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBPresetsViewController.h b/macosx/HBPresetsViewController.h
index 7dffd5f73..baa130117 100644
--- a/macosx/HBPresetsViewController.h
+++ b/macosx/HBPresetsViewController.h
@@ -20,7 +20,7 @@
- (instancetype)initWithPresetManager:(HBPresetsManager *)presetManager;
-@property (nonatomic, readwrite, unsafe_unretained) id<HBPresetsViewControllerDelegate> delegate;
+@property (nonatomic, readwrite, weak) id<HBPresetsViewControllerDelegate> delegate;
- (IBAction)exportPreset:(id)sender;
- (IBAction)importPreset:(id)sender;
@@ -30,7 +30,7 @@
- (IBAction)insertFolder:(id)sender;
-@property (unsafe_unretained, nonatomic, readonly) HBPreset *selectedPreset;
+@property (nonatomic, readonly, weak) HBPreset *selectedPreset;
@property (nonatomic, readonly) NSUInteger indexOfSelectedItem;
@property (nonatomic, readwrite, getter=isEnabled) BOOL enabled;
diff --git a/macosx/HBPreviewController.h b/macosx/HBPreviewController.h
index 866c2a45d..d3f1faaca 100644
--- a/macosx/HBPreviewController.h
+++ b/macosx/HBPreviewController.h
@@ -11,6 +11,6 @@
@interface HBPreviewController : NSWindowController <NSWindowDelegate>
@property (nonatomic, strong) HBPreviewGenerator *generator;
-@property (nonatomic, readwrite, unsafe_unretained) NSWindowController *pictureSettingsWindow;
+@property (nonatomic, readwrite, weak) NSWindowController *pictureSettingsWindow;
@end
diff --git a/macosx/HBPreviewGenerator.h b/macosx/HBPreviewGenerator.h
index 4aa019c99..9ca549d9f 100644
--- a/macosx/HBPreviewGenerator.h
+++ b/macosx/HBPreviewGenerator.h
@@ -6,6 +6,8 @@
#import <Foundation/Foundation.h>
+NS_ASSUME_NONNULL_BEGIN
+
@class HBCore;
@class HBJob;
@@ -22,12 +24,12 @@
@interface HBPreviewGenerator : NSObject
-@property (nonatomic, unsafe_unretained) id <HBPreviewGeneratorDelegate> delegate;
+@property (nonatomic, weak, nullable) id <HBPreviewGeneratorDelegate> delegate;
- (instancetype)initWithCore:(HBCore *)core job:(HBJob *)job NS_DESIGNATED_INITIALIZER;
/* Still image generator */
-- (CGImageRef) copyImageAtIndex: (NSUInteger) index shouldCache: (BOOL) cache CF_RETURNS_RETAINED;
+- (nullable CGImageRef) copyImageAtIndex: (NSUInteger) index shouldCache: (BOOL) cache CF_RETURNS_RETAINED;
@property (nonatomic, readonly) NSUInteger imagesCount;
@property (nonatomic, readonly) CGSize imageSize;
- (void) purgeImageCache;
@@ -39,3 +41,5 @@
- (void) cancel;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBPreviewGenerator.m b/macosx/HBPreviewGenerator.m
index a29b4e8c2..d3fb4ffee 100644
--- a/macosx/HBPreviewGenerator.m
+++ b/macosx/HBPreviewGenerator.m
@@ -16,8 +16,8 @@
@interface HBPreviewGenerator ()
@property (nonatomic, readonly) NSCache *picturePreviews;
-@property (unsafe_unretained, nonatomic, readonly) HBCore *scanCore;
-@property (unsafe_unretained, nonatomic, readonly) HBJob *job;
+@property (nonatomic, readonly, weak) HBCore *scanCore;
+@property (nonatomic, readonly, strong) HBJob *job;
@property (nonatomic, strong) HBCore *core;
diff --git a/macosx/HBQueueController.h b/macosx/HBQueueController.h
index 9e497d8c5..c0efaba17 100644
--- a/macosx/HBQueueController.h
+++ b/macosx/HBQueueController.h
@@ -7,6 +7,8 @@
#import <Cocoa/Cocoa.h>
#import <Growl/Growl.h>
+NS_ASSUME_NONNULL_BEGIN
+
@class HBAppDelegate;
@class HBController;
@class HBOutputPanelController;
@@ -18,8 +20,8 @@
/// The HBCore used for encoding.
@property (nonatomic, readonly) HBCore *core;
-@property (nonatomic, unsafe_unretained) HBController *controller;
-@property (nonatomic, unsafe_unretained) HBAppDelegate *delegate;
+@property (nonatomic, weak, nullable) HBController *controller;
+@property (nonatomic, weak, nullable) HBAppDelegate *delegate;
@property (nonatomic, readonly) NSUInteger count;
@property (nonatomic, readonly) NSUInteger pendingItemsCount;
@@ -41,3 +43,6 @@
- (IBAction)togglePauseResume:(id)sender;
@end
+
+NS_ASSUME_NONNULL_END
+
diff --git a/macosx/HBQueueController.m b/macosx/HBQueueController.m
index 2a86bc5bc..406611df7 100644
--- a/macosx/HBQueueController.m
+++ b/macosx/HBQueueController.m
@@ -751,7 +751,7 @@
{
// We pause the encode here so that it doesn't finish right after and then
// screw up the sync while the window is open
- [self togglePauseResume:nil];
+ [self togglePauseResume:self];
NSString *alertTitle = [NSString stringWithFormat:NSLocalizedString(@"Stop This Encode and Remove It?", nil)];
@@ -790,7 +790,7 @@
// state, if it paused, it will resume encoding and vice versa.
// In this case, we are paused from the calling window, so calling
// [self togglePauseResume:nil]; Again will resume encoding
- [self togglePauseResume:nil];
+ [self togglePauseResume:self];
if (returnCode == NSAlertSecondButtonReturn)
{
@@ -986,7 +986,7 @@
{
// We pause the encode here so that it doesn't finish right after and then
// screw up the sync while the window is open
- [self togglePauseResume:nil];
+ [self togglePauseResume:self];
NSString *alertTitle = [NSString stringWithFormat:NSLocalizedString(@"Stop This Encode and Remove It ?", nil)];
// Which window to attach the sheet to?
NSWindow *docWindow = nil;
diff --git a/macosx/HBRange.h b/macosx/HBRange.h
index 203b6b24c..bf18279b8 100644
--- a/macosx/HBRange.h
+++ b/macosx/HBRange.h
@@ -8,6 +8,8 @@
@class HBTitle;
+NS_ASSUME_NONNULL_BEGIN
+
extern NSString *HBRangeChangedNotification;
typedef NS_ENUM(NSUInteger, HBRangeType) {
@@ -42,6 +44,8 @@ typedef NS_ENUM(NSUInteger, HBRangeType) {
@property (nonatomic, readonly) NSString *duration;
-@property (nonatomic, readwrite, unsafe_unretained) HBTitle *title;
+@property (nonatomic, readwrite, weak, nullable) HBTitle *title;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBStateFormatter.h b/macosx/HBStateFormatter.h
index f5b97f2fb..823230929 100644
--- a/macosx/HBStateFormatter.h
+++ b/macosx/HBStateFormatter.h
@@ -7,6 +7,8 @@
#import <Foundation/Foundation.h>
#include "hb.h"
+NS_ASSUME_NONNULL_BEGIN
+
/**
* Instances of HBStateFormatter format and conver a hb_state_t struct to a textual representation.
*/
@@ -18,7 +20,7 @@
* @param s hb_state_t
* @param title the title of the current job
*/
-- (NSString *)stateToString:(hb_state_t)s title:(NSString *)title;
+- (NSString *)stateToString:(hb_state_t)s title:(nullable NSString *)title;
/**
* Returns a CGFloat containing the completion percent.
@@ -39,3 +41,5 @@
@property (nonatomic, readwrite) BOOL showPassNumber;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBSubtitlesController.h b/macosx/HBSubtitlesController.h
index df72a30dd..2be943cd8 100644
--- a/macosx/HBSubtitlesController.h
+++ b/macosx/HBSubtitlesController.h
@@ -13,6 +13,6 @@
*/
@interface HBSubtitlesController : NSViewController
-@property (nonatomic, readwrite, unsafe_unretained) HBSubtitles *subtitles;
+@property (nonatomic, readwrite, weak) HBSubtitles *subtitles;
@end
diff --git a/macosx/HBTitle.h b/macosx/HBTitle.h
index b60af075c..137ea1b09 100644
--- a/macosx/HBTitle.h
+++ b/macosx/HBTitle.h
@@ -7,6 +7,8 @@
#import <Foundation/Foundation.h>
#include "hb.h"
+NS_ASSUME_NONNULL_BEGIN
+
/**
* HBTitles is an interface to the low-level hb_title_t.
* the properties are lazy-loaded.
@@ -53,3 +55,5 @@
@property (nonatomic, readonly) NSArray *chapters;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBTitleSelectionController.h b/macosx/HBTitleSelectionController.h
index 3dda1984b..226340347 100644
--- a/macosx/HBTitleSelectionController.h
+++ b/macosx/HBTitleSelectionController.h
@@ -6,6 +6,8 @@
#import <Cocoa/Cocoa.h>
+NS_ASSUME_NONNULL_BEGIN
+
@protocol HBTitleSelectionDelegate <NSObject>
- (void)didSelectIndexes:(NSIndexSet *)indexes;
@@ -17,3 +19,5 @@
- (instancetype)initWithTitles:(NSArray *)titles delegate:(id<HBTitleSelectionDelegate>)delegate;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBTitleSelectionController.m b/macosx/HBTitleSelectionController.m
index e7d4d4a70..63622a093 100644
--- a/macosx/HBTitleSelectionController.m
+++ b/macosx/HBTitleSelectionController.m
@@ -12,7 +12,7 @@
@property (nonatomic, readonly) NSArray *titles;
@property (nonatomic, readonly) NSMutableArray *selection;
-@property (nonatomic, readonly, unsafe_unretained) id<HBTitleSelectionDelegate> delegate;
+@property (nonatomic, readonly, weak) id<HBTitleSelectionDelegate> delegate;
@end
diff --git a/macosx/HBTreeNode.h b/macosx/HBTreeNode.h
index b4c93f40e..be40a6125 100644
--- a/macosx/HBTreeNode.h
+++ b/macosx/HBTreeNode.h
@@ -6,6 +6,8 @@
#import <Foundation/Foundation.h>
+NS_ASSUME_NONNULL_BEGIN
+
/**
* Notify a delegate that something changed in the tree.
* KVO observing a tree looked complicated an expensive, so this is a lightweight
@@ -29,7 +31,7 @@
@property (nonatomic, readonly) NSMutableArray *children;
@property (nonatomic) BOOL isLeaf;
-@property (nonatomic, unsafe_unretained) id<HBTreeNodeDelegate> delegate;
+@property (nonatomic, weak) id<HBTreeNodeDelegate> delegate;
/**
* Executes a given block using each object in the tree, starting with the root object and continuing through the tree to the last object.
@@ -45,7 +47,7 @@
*
* @return The index path whose corresponding value is equal to the preset. Returns nil if not found.
*/
-- (NSIndexPath *)indexPathOfObject:(id)obj;
+- (nullable NSIndexPath *)indexPathOfObject:(id)obj;
/**
* Removes the object at the specified index path.
@@ -62,3 +64,6 @@
- (void)removeObjectFromChildrenAtIndex:(NSUInteger)index;
@end
+
+NS_ASSUME_NONNULL_END
+
diff --git a/macosx/HBUtilities.h b/macosx/HBUtilities.h
index eed1cafcd..de4fe2036 100644
--- a/macosx/HBUtilities.h
+++ b/macosx/HBUtilities.h
@@ -6,6 +6,8 @@
#import <Foundation/Foundation.h>
+NS_ASSUME_NONNULL_BEGIN
+
@interface HBUtilities : NSObject
/**
@@ -16,7 +18,7 @@
/**
* Returns the url of the current <user>/Library/Application Support/HandBrake folder.
*/
-+ (NSURL *)appSupportURL;
++ (nullable NSURL *)appSupportURL;
/**
* Writes a message to standard error.
* The message will show up in the output panel and in the activity log.
@@ -46,3 +48,6 @@
videoCodec:(uint32_t)codec;
@end
+
+NS_ASSUME_NONNULL_END
+
diff --git a/macosx/HBUtilities.m b/macosx/HBUtilities.m
index 9471d5a27..eab00968e 100644
--- a/macosx/HBUtilities.m
+++ b/macosx/HBUtilities.m
@@ -23,7 +23,7 @@
NSURL *appSupportURL = [[[fileManager URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask]
firstObject] URLByAppendingPathComponent:@"HandBrake"];
- if (![fileManager fileExistsAtPath:appSupportURL.path])
+ if (appSupportURL && ![fileManager fileExistsAtPath:appSupportURL.path])
{
[fileManager createDirectoryAtPath:appSupportURL.path withIntermediateDirectories:YES attributes:nil error:NULL];
}
diff --git a/macosx/HBVideo.h b/macosx/HBVideo.h
index 2b564d9be..9b593f869 100644
--- a/macosx/HBVideo.h
+++ b/macosx/HBVideo.h
@@ -9,6 +9,8 @@
@class HBJob;
+NS_ASSUME_NONNULL_BEGIN
+
extern NSString * const HBVideoChangedNotification;
/**
@@ -46,7 +48,9 @@ extern NSString * const HBVideoChangedNotification;
@property (nonatomic, readwrite) BOOL fastDecode;
-@property (nonatomic, readwrite, unsafe_unretained) HBJob *job;
+@property (nonatomic, readwrite, weak) HBJob *job;
@property (nonatomic, readonly) NSString *completeTune;
@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBVideoController.h b/macosx/HBVideoController.h
index 6ea8bc41c..b3725eaa7 100644
--- a/macosx/HBVideoController.h
+++ b/macosx/HBVideoController.h
@@ -16,6 +16,6 @@
- (instancetype)initWithAdvancedController:(HBAdvancedController *)advancedController;
-@property (nonatomic, readwrite, unsafe_unretained) HBJob *job;
+@property (nonatomic, readwrite, weak) HBJob *job;
@end
diff --git a/macosx/HBVideoController.m b/macosx/HBVideoController.m
index 54a0e2d13..f67a11025 100644
--- a/macosx/HBVideoController.m
+++ b/macosx/HBVideoController.m
@@ -37,7 +37,7 @@ static void *HBVideoControllerContext = &HBVideoControllerContext;
}
@property (nonatomic, strong, readwrite) HBAdvancedController *advancedController;
-@property (nonatomic, readwrite, unsafe_unretained) HBVideo *video;
+@property (nonatomic, readwrite, weak) HBVideo *video;
@property (nonatomic, readwrite) BOOL presetViewEnabled;