ObjFW  Check-in [f663d40cbd]

Overview
Comment:Also use nonatomic for non-object properties
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: f663d40cbd42bf95c37b1415cf717ae147690f1eb69fa5f7d08f06e8d4da7ff1
User & Date: js on 2017-05-13 16:29:52
Other Links: manifest | tags
Context
2017-05-13
16:34
OFAddressTranslationFailedException: Fix typo check-in: ed94121c31 user: js tags: trunk
16:29
Also use nonatomic for non-object properties check-in: f663d40cbd user: js tags: trunk
2017-05-09
21:25
Add a few missing OF_ASSUME_NONNULL_{BEGIN,END} check-in: 13965af7a1 user: js tags: trunk
Changes

Modified configure.ac from [b157727f9f] to [8fe8f7a499].

155
156
157
158
159
160
161


162
163
164
165
166
167
168
169




170
171
172
173
174
175
176
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169


170
171
172
173
174
175
176
177
178
179
180







+
+






-
-
+
+
+
+








AX_CHECK_COMPILER_FLAGS(-pipe, [OBJCFLAGS="$OBJCFLAGS -pipe"])
AX_CHECK_COMPILER_FLAGS(-fno-common, [OBJCFLAGS="$OBJCFLAGS -fno-common"])
AX_CHECK_COMPILER_FLAGS(-fno-constant-cfstrings, [
	OBJCFLAGS="$OBJCFLAGS -fno-constant-cfstrings"
	AC_SUBST(NO_CONST_CFSTRINGS, "-fno-constant-cfstrings")
])
AX_CHECK_COMPILER_FLAGS(-Wsign-compare -Werror,
	[OBJCFLAGS="$OBJCFLAGS -Wsign-compare"])
AX_CHECK_COMPILER_FLAGS(-Wshorten-64-to-32 -Werror,
	[OBJCFLAGS="$OBJCFLAGS -Wshorten-64-to-32"])
AX_CHECK_COMPILER_FLAGS(-Wsemicolon-before-method-body -Werror,
	[OBJCFLAGS="$OBJCFLAGS -Wsemicolon-before-method-body"])
AX_CHECK_COMPILER_FLAGS(-Wobjc-missing-property-synthesis -Werror,
	[OBJCFLAGS="$OBJCFLAGS -Wobjc-missing-property-synthesis"])
AX_CHECK_COMPILER_FLAGS(-Wsign-compare -Werror,
	[OBJCFLAGS="$OBJCFLAGS -Wsign-compare"])
AX_CHECK_COMPILER_FLAGS(-Watomic-properties -Werror, [
	OBJCFLAGS="$OBJCFLAGS -Watomic-properties"
	TESTS_OBJCFLAGS="$TESTS_OBJCFLAGS -Wno-atomic-properties"
])

AC_MSG_CHECKING(whether Objective C compiler supports properties)
AC_TRY_COMPILE([
	@interface Foo
	{
		id bar;
	}
1467
1468
1469
1470
1471
1472
1473

1474
1475
1476
1477
1478
1479
1480
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485







+







AC_SUBST(CPP)
AC_SUBST(CPPFLAGS)
dnl We use the ObjC compiler as our assembler
AC_SUBST(AS, $OBJC)
AC_SUBST(ASFLAGS)
AC_SUBST(AS_DEPENDS, '${OBJC_DEPENDS}')

AC_SUBST(TESTS_OBJCFLAGS)
AC_SUBST(TESTS_LIBS)

AC_CONFIG_FILES([
	buildsys.mk
	extra.mk
	misc/Bridge-Info.plist
	misc/Info.plist

Modified extra.mk.in from [231bfb1ae9] to [7295fda980].

50
51
52
53
54
55
56

57
58
59
60
61
62
63
64
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65







+








RUNTIME_A = @RUNTIME_A@
RUNTIME_LIB_A = @RUNTIME_LIB_A@
RUNTIME_RUNTIME_A = @RUNTIME_RUNTIME_A@
RUNTIME_RUNTIME_LIB_A = @RUNTIME_RUNTIME_LIB_A@
RUN_TESTS = @RUN_TESTS@
TESTPLUGIN = @TESTPLUGIN@
TESTS_LIBS = @TESTS_LIBS@
TESTS_OBJCFLAGS = @TESTS_OBJCFLAGS@
TEST_LAUNCHER = @TEST_LAUNCHER@
UNICODE_M = @UNICODE_M@
USE_INCLUDES_ATOMIC = @USE_INCLUDES_ATOMIC@
USE_SRCS_FILES = @USE_SRCS_FILES@
USE_SRCS_PLUGINS = @USE_SRCS_PLUGINS@
USE_SRCS_SOCKETS = @USE_SRCS_SOCKETS@
USE_SRCS_THREADS = @USE_SRCS_THREADS@
WEAK_NSFOUNDATIONVERSIONNUMBER = @WEAK_NSFOUNDATIONVERSIONNUMBER@

Modified src/OFCryptoHash.h from [fb07c27325] to [c3a8ed0de1].

27
28
29
30
31
32
33
34

35
36
37
38
39
40
41
27
28
29
30
31
32
33

34
35
36
37
38
39
40
41







-
+







 * state is copied, allowing to calculate a new hash from there. This is
 * especially useful for generating many hashes with a common prefix.
 */
@protocol OFCryptoHash <OFObject, OFCopying>
/*!
 * A boolean whether the hash has already been calculated.
 */
@property (readonly, getter=isCalculated) bool calculated;
@property (readonly, nonatomic, getter=isCalculated) bool calculated;

/*!
 * @brief Creates a new cryptographic hash.
 *
 * @return A new autoreleased OFCryptoHash
 */
+ (instancetype)cryptoHash;

Modified src/OFDataArray.h from [dfeb1bb755] to [03e99d7c84].

40
41
42
43
44
45
46
47

48
49
50
51
52
53
54
40
41
42
43
44
45
46

47
48
49
50
51
52
53
54







-
+







	uint8_t *_items;
	size_t _count, _itemSize, _capacity;
}

/*!
 * The size of a single item in the OFDataArray in bytes.
 */
@property (readonly) size_t itemSize;
@property (readonly, nonatomic) size_t itemSize;

/*!
 * @brief Creates a new OFDataArray with an item size of 1.
 *
 * @return A new autoreleased OFDataArray
 */
+ (instancetype)dataArray;

Modified src/OFHTTPClient.h from [8fd8945807] to [7523e2d4b7].

108
109
110
111
112
113
114
115


116
117
118
119
120

121
122
123
124
125
126
127
108
109
110
111
112
113
114

115
116
117
118
119
120

121
122
123
124
125
126
127
128







-
+
+




-
+







	bool _lastWasHEAD;
	OFHTTPResponse *_lastResponse;
}

/*!
 * The delegate of the HTTP request.
 */
@property OF_NULLABLE_PROPERTY (assign) id <OFHTTPClientDelegate> delegate;
@property OF_NULLABLE_PROPERTY (nonatomic, assign)
    id <OFHTTPClientDelegate> delegate;

/*!
 * Whether redirects from HTTPS to HTTP will be allowed.
 */
@property bool insecureRedirectsAllowed;
@property (nonatomic) bool insecureRedirectsAllowed;

/*!
 * @brief Creates a new OFHTTPClient.
 *
 * @return A new, autoreleased OFHTTPClient
 */
+ (instancetype)client;

Modified src/OFHTTPCookie.h from [e996e1649d] to [034b988288].

59
60
61
62
63
64
65
66

67
68
69
70
71

72
73
74
75
76
77
78
59
60
61
62
63
64
65

66
67
68
69
70

71
72
73
74
75
76
77
78







-
+




-
+







 * The path for the cookie.
 */
@property (nonatomic, copy) OFString *path;

/*!
 * Whether the cookie is only to be used with HTTPS.
 */
@property (getter=isSecure) bool secure;
@property (nonatomic, getter=isSecure) bool secure;

/*!
 * Whether the cookie is only to be accessed through HTTP.
 */
@property (getter=isHTTPOnly) bool HTTPOnly;
@property (nonatomic, getter=isHTTPOnly) bool HTTPOnly;

/*!
 * An array of other attributes.
 */
@property (readonly, nonatomic)
    OFMutableArray OF_GENERIC(OFString *) *extensions;

Modified src/OFHTTPRequest.h from [9f0eddeab0] to [db98ef2863].

86
87
88
89
90
91
92
93

94
95
96
97
98
99
100
86
87
88
89
90
91
92

93
94
95
96
97
98
99
100







-
+







 * The URL of the HTTP request.
 */
@property (nonatomic, copy) OFURL *URL;

/*!
 * The request method of the HTTP request.
 */
@property of_http_request_method_t method;
@property (nonatomic) of_http_request_method_t method;

/*!
 * The headers for the HTTP request.
 */
@property OF_NULLABLE_PROPERTY (nonatomic, copy)
    OFDictionary OF_GENERIC(OFString *, OFString *) *headers;

Modified src/OFHTTPResponse.h from [88ee04dd60] to [8c2cdf93f1].

35
36
37
38
39
40
41
42

43
44
45
46
47
48
49
35
36
37
38
39
40
41

42
43
44
45
46
47
48
49







-
+







	OFDictionary OF_GENERIC(OFString *, OFString *) *_headers;
	OFArray OF_GENERIC(OFHTTPCookie *) *_cookies;
}

/*!
 * The status code of the reply to the HTTP request.
 */
@property short statusCode;
@property (nonatomic) short statusCode;

/*!
 * The headers of the reply to the HTTP request.
 */
@property OF_NULLABLE_PROPERTY (nonatomic, copy)
    OFDictionary OF_GENERIC(OFString *, OFString *) *headers;

Modified src/OFHTTPServer.h from [7497041027] to [6f778fd782].

99
100
101
102
103
104
105
106

107
108
109
110
111


112
113
114
115
116
117
118
99
100
101
102
103
104
105

106
107
108
109
110

111
112
113
114
115
116
117
118
119







-
+




-
+
+







 * The host on which the HTTP server will listen.
 */
@property OF_NULLABLE_PROPERTY (nonatomic, copy) OFString *host;

/*!
 * The port on which the HTTP server will listen.
 */
@property uint16_t port;
@property (nonatomic) uint16_t port;

/*!
 * The delegate for the HTTP server.
 */
@property OF_NULLABLE_PROPERTY (assign) id <OFHTTPServerDelegate> delegate;
@property OF_NULLABLE_PROPERTY (nonatomic, assign)
    id <OFHTTPServerDelegate> delegate;

/*!
 * The server name the server presents to clients.
 *
 * Setting it to `nil` means no `Server` header will be sent, unless one is
 * specified in the response headers.
 */

Modified src/OFIntrospection.h from [f61e265eb4] to [430d3cc423].

48
49
50
51
52
53
54
55

56
57
58
59
60
61
62
63
64
65

66
67
68
69
70
71
72
48
49
50
51
52
53
54

55
56
57
58
59
60
61
62
63
64

65
66
67
68
69
70
71
72







-
+









-
+







	OFString *_name;
	const char *_typeEncoding;
}

/*!
 * The selector of the method.
 */
@property (readonly) SEL selector;
@property (readonly, nonatomic) SEL selector;

/*!
 * The name of the method.
 */
@property (readonly, nonatomic) OFString *name;

/*!
 * The type encoding for the method.
 */
@property OF_NULLABLE_PROPERTY (readonly) const char *typeEncoding;
@property OF_NULLABLE_PROPERTY (readonly, nonatomic) const char *typeEncoding;

- init OF_UNAVAILABLE;
@end

/*!
 * @class OFProperty OFIntrospection.h ObjFW/OFIntrospection.h
 *
97
98
99
100
101
102
103
104

105
106
107
108
109
110
111
97
98
99
100
101
102
103

104
105
106
107
108
109
110
111







-
+







 * OF_PROPERTY_COPY              | The property is declared `copy`
 * OF_PROPERTY_NONATOMIC         | The property is declared `nonatomic`
 * OF_PROPERTY_ATOMIC            | The property is declared `atomic`
 * OF_PROPERTY_WEAK              | The property is declared `weak`
 * OF_PROPERTY_SYNTHESIZED       | The property is synthesized
 * OF_PROPERTY_DYNAMIC           | The property is dynamic
 */
@property (readonly) unsigned attributes;
@property (readonly, nonatomic) unsigned attributes;

/*!
 * The name of the getter.
 */
@property OF_NULLABLE_PROPERTY (readonly, nonatomic) OFString *getter;

/*!
132
133
134
135
136
137
138
139

140
141
142
143
144

145
146
147
148
149
150
151
132
133
134
135
136
137
138

139
140
141
142
143

144
145
146
147
148
149
150
151







-
+




-
+







 * The name of the instance variable.
 */
@property (readonly, nonatomic) OFString *name;

/*!
 * The offset of the instance variable.
 */
@property (readonly) ptrdiff_t offset;
@property (readonly, nonatomic) ptrdiff_t offset;

/*!
 * The type encoding for the instance variable.
 */
@property OF_NULLABLE_PROPERTY (readonly) const char *typeEncoding;
@property OF_NULLABLE_PROPERTY (readonly, nonatomic) const char *typeEncoding;

- init OF_UNAVAILABLE;
@end

/*!
 * @class OFIntrospection OFIntrospection.h ObjFW/OFIntrospection.h
 *

Modified src/OFKernelEventObserver.h from [e653f3b4a2] to [d08ae9a87d].

124
125
126
127
128
129
130
131

132
133
134
135
136
137
138
124
125
126
127
128
129
130

131
132
133
134
135
136
137
138







-
+







	OFDataArray *_queueActions;
	OFMutableArray *_queueObjects;
}

/*!
 * The delegate for the OFKernelEventObserver.
 */
@property OF_NULLABLE_PROPERTY (assign)
@property OF_NULLABLE_PROPERTY (nonatomic, assign)
    id <OFKernelEventObserverDelegate> delegate;

/*!
 * @brief Creates a new OFKernelEventObserver.
 *
 * @return A new, autoreleased OFKernelEventObserver
 */

Modified src/OFList.h from [feabf2e6ec] to [c326019649].

59
60
61
62
63
64
65
66


67
68
69
70
71


72
73
74
75
76
77
78
59
60
61
62
63
64
65

66
67
68
69
70
71

72
73
74
75
76
77
78
79
80







-
+
+




-
+
+







	size_t		 _count;
	unsigned long	 _mutations;
}

/*!
 * The first list object of the list.
 */
@property OF_NULLABLE_PROPERTY (readonly) of_list_object_t *firstListObject;
@property OF_NULLABLE_PROPERTY (readonly, nonatomic)
    of_list_object_t *firstListObject;

/*!
 * The last list object of the list.
 */
@property OF_NULLABLE_PROPERTY (readonly) of_list_object_t *lastListObject;
@property OF_NULLABLE_PROPERTY (readonly, nonatomic)
    of_list_object_t *lastListObject;

/*!
 * @brief Creates a new OFList.
 *
 * @return A new autoreleased OFList
 */
+ (instancetype)list;

Modified src/OFLocalization.h from [368d40b91d] to [f635a4f99c].

62
63
64
65
66
67
68
69

70
71
72
73
74
75
76
62
63
64
65
66
67
68

69
70
71
72
73
74
75
76







-
+







 * The native 8-bit string encoding of the locale for messages.
 *
 * This is useful to encode strings correctly for passing them to operating
 * system calls.
 *
 * If the native 8-bit encoding is unknown, UTF-8 is assumed.
 */
@property (readonly) of_string_encoding_t encoding;
@property (readonly, nonatomic) of_string_encoding_t encoding;

/*!
 * The decimal point of the system's locale.
 */
@property (readonly, nonatomic) OFString *decimalPoint;

/*!

Modified src/OFMapTable.h from [39ab811d56] to [9ffd8ae151].

75
76
77
78
79
80
81
82

83
84
85
86
87

88
89
90
91
92
93
94
75
76
77
78
79
80
81

82
83
84
85
86

87
88
89
90
91
92
93
94







-
+




-
+







	uint8_t _rotate;
	unsigned long _mutations;
}

/*!
 * The key functions used by the map table.
 */
@property (readonly) of_map_table_functions_t keyFunctions;
@property (readonly, nonatomic) of_map_table_functions_t keyFunctions;

/*!
 * The object functions used by the map table.
 */
@property (readonly) of_map_table_functions_t objectFunctions;
@property (readonly, nonatomic) of_map_table_functions_t objectFunctions;

/*!
 * @brief Creates a new OFMapTable with the specified key and object functions.
 *
 * @param keyFunctions A structure of functions for handling keys
 * @param objectFunctions A structure of functions for handling objects
 * @return A new autoreleased OFMapTable

Modified src/OFMessagePackExtension.h from [1d2cd153ce] to [1838881d73].

33
34
35
36
37
38
39
40

41
42
43
44
45
46
47
33
34
35
36
37
38
39

40
41
42
43
44
45
46
47







-
+







	int8_t _type;
	OFDataArray *_data;
}

/*!
 * The MessagePack extension type.
 */
@property (readonly) int8_t type;
@property (readonly, nonatomic) int8_t type;

/*!
 * @return The data of the extension.
 */
@property (readonly, nonatomic) OFDataArray *data;

/*!

Modified src/OFNumber.h from [ae44482d26] to [d2e9d52654].

146
147
148
149
150
151
152
153

154
155
156
157
158
159
160
146
147
148
149
150
151
152

153
154
155
156
157
158
159
160







-
+







	} _value;
	of_number_type_t _type;
}

/*!
 * The type of the number.
 */
@property (readonly) of_number_type_t type;
@property (readonly, nonatomic) of_number_type_t type;

/*!
 * @brief Creates a new OFNumber with the specified bool.
 *
 * @param bool_ A bool which the OFNumber should contain
 * @return A new autoreleased OFNumber
 */

Modified src/OFOptionsParser.h from [649b3c8175] to [b82c75fff0].

80
81
82
83
84
85
86
87

88
89
90
91
92
93
94
80
81
82
83
84
85
86

87
88
89
90
91
92
93
94







-
+







 * The last parsed option.
 *
 * If @ref nextOption returned `?` or `:`, this returns the option which was
 * unknown or for which the argument was missing.@n
 * If this returns `-`, the last option is only available as a long option (see
 * lastLongOption).
 */
@property (readonly) of_unichar_t lastOption;
@property (readonly, nonatomic) of_unichar_t lastOption;

/*!
 * The long option for the last parsed option, or `nil` if the last parsed
 * option was not passed as a long option by the user.
 *
 * In case @ref nextOption returned `?`, this contains the unknown long
 * option.@n

Modified src/OFSandbox.h from [caa850467d] to [1de6e8165f].

38
39
40
41
42
43
44
45

46
47
48

49
50
51

52
53
54

55
56
57

58
59
60

61
62
63

64
65
66

67
68
69

70
71
72

73
74
75

76
77
78

79
80
81

82
83
84

85
86
87

88
89
90

91
92
93

94
95
96

97
98
99

100
101
102

103
104
105

106
107
108

109
110
111

112
113
114

115
116
117

118
119
120

121
122
123

124
125
126

127
128
129
130
131
132
133
38
39
40
41
42
43
44

45
46
47

48
49
50

51
52
53

54
55
56

57
58
59

60
61
62

63
64
65

66
67
68

69
70
71

72
73
74

75
76
77

78
79
80

81
82
83

84
85
86

87
88
89

90
91
92

93
94
95

96
97
98

99
100
101

102
103
104

105
106
107

108
109
110

111
112
113

114
115
116

117
118
119

120
121
122

123
124
125

126
127
128
129
130
131
132
133







-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+


-
+







	bool _allowsFileDescriptorReceiving, _allowsTape, _allowsTTY;
	bool _allowsProcessOperations, _allowsExec, _allowsProtExec;
	bool _allowsSetTime, _allowsPS, _allowsVMInfo;
	bool _allowsChangingProcessRights, _allowsPF, _allowsAudio, _allowsBPF;
}

/*! Allows IO operations on previously allocated file descriptors. */
@property bool allowsStdIO;
@property (nonatomic) bool allowsStdIO;

/*! Allows read access to the file system. */
@property bool allowsReadingFiles;
@property (nonatomic) bool allowsReadingFiles;

/*! Allows write access to the file system. */
@property bool allowsWritingFiles;
@property (nonatomic) bool allowsWritingFiles;

/*! Allows creating files in the file system. */
@property bool allowsCreatingFiles;
@property (nonatomic) bool allowsCreatingFiles;

/*! Allows creating special files in the file system. */
@property bool allowsCreatingSpecialFiles;
@property (nonatomic) bool allowsCreatingSpecialFiles;

/*! Allows creating, reading and writing temporary files in /tmp. */
@property bool allowsTemporaryFiles;
@property (nonatomic) bool allowsTemporaryFiles;

/*! Allows using IP sockets. */
@property bool allowsIPSockets;
@property (nonatomic) bool allowsIPSockets;

/*! Allows multicast sockets. */
@property bool allowsMulticastSockets;
@property (nonatomic) bool allowsMulticastSockets;

/*! Allows explicit changes to file attributes. */
@property bool allowsChangingFileAttributes;
@property (nonatomic) bool allowsChangingFileAttributes;

/*! Allows changing ownership of files. */
@property bool allowsFileOwnerChanges;
@property (nonatomic) bool allowsFileOwnerChanges;

/*! Allows file locks. */
@property bool allowsFileLocks;
@property (nonatomic) bool allowsFileLocks;

/*! Allows UNIX sockets. */
@property bool allowsUNIXSockets;
@property (nonatomic) bool allowsUNIXSockets;

/*! Allows syscalls necessary for DNS lookups. */
@property bool allowsDNS;
@property (nonatomic) bool allowsDNS;

/*! Allows to look up users and groups. */
@property bool allowsUserDatabaseReading;
@property (nonatomic) bool allowsUserDatabaseReading;

/*! Allows sending file descriptors via sendmsg(). */
@property bool allowsFileDescriptorSending;
@property (nonatomic) bool allowsFileDescriptorSending;

/*! Allows receiving file descriptors via recvmsg(). */
@property bool allowsFileDescriptorReceiving;
@property (nonatomic) bool allowsFileDescriptorReceiving;

/*! Allows MTIOCGET and MTIOCTOP operations on tape devices. */
@property bool allowsTape;
@property (nonatomic) bool allowsTape;

/*! Allows read-write operations and ioctls on the TTY. */
@property bool allowsTTY;
@property (nonatomic) bool allowsTTY;

/*! Allows various process relationshop operations. */
@property bool allowsProcessOperations;
@property (nonatomic) bool allowsProcessOperations;

/*! Allows execve(). */
@property bool allowsExec;
@property (nonatomic) bool allowsExec;

/*! Allows PROT_EXEC for mmap() and mprotect(). */
@property bool allowsProtExec;
@property (nonatomic) bool allowsProtExec;

/*! Allows settime(). */
@property bool allowsSetTime;
@property (nonatomic) bool allowsSetTime;

/*! Allows introspection of processes on the system. */
@property bool allowsPS;
@property (nonatomic) bool allowsPS;

/*! Allows introspection of the system's virtual memory. */
@property bool allowsVMInfo;
@property (nonatomic) bool allowsVMInfo;

/*! Allows changing the rights of process, for example the UID. */
@property bool allowsChangingProcessRights;
@property (nonatomic) bool allowsChangingProcessRights;

/*! Allows certain ioctls on the PF device. */
@property bool allowsPF;
@property (nonatomic) bool allowsPF;

/*! Allows certain ioctls on audio devices. */
@property bool allowsAudio;
@property (nonatomic) bool allowsAudio;

/*! Allows BIOCGSTATS to collect statistics from a BPF device. */
@property bool allowsBPF;
@property (nonatomic) bool allowsBPF;

/*!
 * @brief Create a new, autorelease OFSandbox.
 */
+ (instancetype)sandbox;

#ifdef OF_HAVE_PLEDGE

Modified src/OFStream+Private.h from [f6a8d06fe4] to [dfdce57421].

15
16
17
18
19
20
21

22

23
24
25
15
16
17
18
19
20
21
22

23
24
25
26







+
-
+



 */

#import "OFStream.h"

OF_ASSUME_NONNULL_BEGIN

@interface OFStream ()
@property (readonly, nonatomic, getter=OF_isWaitingForDelimiter)
@property (readonly) bool OF_isWaitingForDelimiter;
    bool OF_waitingForDelimiter;
@end

OF_ASSUME_NONNULL_END

Modified src/OFStream.m from [257a9e5027] to [277ef6a678].

50
51
52
53
54
55
56
57

58
59
60
61
62
63
64
50
51
52
53
54
55
56

57
58
59
60
61
62
63
64







-
+







#import "OFSetOptionFailedException.h"

#import "of_asprintf.h"

#define MIN_READ_SIZE 512

@implementation OFStream
@synthesize OF_isWaitingForDelimiter = _waitingForDelimiter;
@synthesize OF_waitingForDelimiter = _waitingForDelimiter;

#ifndef OF_WINDOWS
+ (void)initialize
{
	if (self == [OFStream class])
		signal(SIGPIPE, SIG_IGN);
}

Modified src/OFTCPSocket.h from [a9d0cd2fee] to [0d4361b9a8].

74
75
76
77
78
79
80
81

82
83
84
85
86
87
88
74
75
76
77
78
79
80

81
82
83
84
85
86
87
88







-
+







 * The host to use as a SOCKS5 proxy.
 */
@property OF_NULLABLE_PROPERTY (nonatomic, copy) OFString *SOCKS5Host;

/*!
 * The port to use on the SOCKS5 proxy.
 */
@property uint16_t SOCKS5Port;
@property (nonatomic) uint16_t SOCKS5Port;

/*!
 * @brief Sets the global SOCKS5 proxy host to use when creating a new socket
 *
 * @param SOCKS5Host The host to use as a SOCKS5 proxy when creating a new
 *		     socket
 */

Modified src/OFTLSSocket.h from [27187de68b] to [ec9c77b08c].

53
54
55
56
57
58
59
60


61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78


79
80
81
82
83
84
85

86
87
88
89
90
91
92
53
54
55
56
57
58
59

60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78

79
80
81
82
83
84
85
86

87
88
89
90
91
92
93
94







-
+
+

















-
+
+






-
+







 * @brief A protocol that should be implemented by 3rd-party libraries
 *	  implementing TLS.
 */
@protocol OFTLSSocket
/*!
 * The delegate for the TLS socket.
 */
@property OF_NULLABLE_PROPERTY (assign) id <OFTLSSocketDelegate> delegate;
@property OF_NULLABLE_PROPERTY (nonatomic, assign)
    id <OFTLSSocketDelegate> delegate;

/*!
 * The path to the X.509 certificate file to use.
 */
@property OF_NULLABLE_PROPERTY (nonatomic, copy) OFString *certificateFile;

/*!
 * The path to the PKCS#8 private key file to use.
 */
@property OF_NULLABLE_PROPERTY (nonatomic, copy) OFString *privateKeyFile;

/*!
 * The passphrase to decrypt the PKCS#8 private key file.
 *
 * @warning You have to ensure that this is in secure memory protected from
 *	    swapping! This is also the reason why this is not an OFString.
 */
@property OF_NULLABLE_PROPERTY (assign) const char *privateKeyPassphrase;
@property OF_NULLABLE_PROPERTY (nonatomic, assign)
    const char *privateKeyPassphrase;

/**
 * Whether certificate verification is enabled.
 *
 * The default is enabled.
 */
@property (getter=isCertificateVerificationEnabled)
@property (nonatomic, getter=isCertificateVerificationEnabled)
    bool certificateVerificationEnabled;

/*!
 * @brief Initializes the TLS socket with the specified TCP socket as its
 *	  underlying socket.
 *
 * @param socket The TCP socket to use as underlying socket

Modified src/OFTarArchiveEntry.h from [9da73d68ac] to [37e5a4326d].

66
67
68
69
70
71
72
73

74
75
76
77
78

79
80
81
82
83
84
85
86
87
88
89
90

91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110

111
112
113
114
115

116
117
118
119
120
66
67
68
69
70
71
72

73
74
75
76
77

78
79
80
81
82
83
84
85
86
87
88
89

90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109

110
111
112
113
114

115
116
117
118
119
120







-
+




-
+











-
+



















-
+




-
+





 * The file name of the entry.
 */
@property (readonly, nonatomic) OFString *fileName;

/*!
 * The mode of the entry.
 */
@property (readonly) uint32_t mode;
@property (readonly, nonatomic) uint32_t mode;

/*!
 * The size of the file.
 */
@property (readonly) uint64_t size;
@property (readonly, nonatomic) uint64_t size;

/*!
 * The date of the last modification of the file.
 */
@property (readonly, nonatomic) OFDate *modificationDate;

/*!
 * The type of the archive entry.
 *
 * See @ref of_tar_archive_entry_type_t.
 */
@property (readonly) of_tar_archive_entry_type_t type;
@property (readonly, nonatomic) of_tar_archive_entry_type_t type;

/*!
 * The file name of the target (for a hard link or symbolic link).
 */
@property (readonly, nonatomic) OFString *targetFileName;

/*!
 * The owner of the file.
 */
@property (readonly, nonatomic) OFString *owner;

/*!
 * The group of the file.
 */
@property (readonly, nonatomic) OFString *group;

/*!
 * The device major (if the file is a device).
 */
@property (readonly) uint32_t deviceMajor;
@property (readonly, nonatomic) uint32_t deviceMajor;

/*!
 * The device major (if the file is a device).
 */
@property (readonly) uint32_t deviceMinor;
@property (readonly, nonatomic) uint32_t deviceMinor;

- init OF_UNAVAILABLE;
@end

OF_ASSUME_NONNULL_END

Modified src/OFTimer.h from [55bdca4345] to [a9d9f7dbbd].

60
61
62
63
64
65
66
67

68
69
70
71
72

73
74
75
76
77

78
79
80
81
82
83
84
60
61
62
63
64
65
66

67
68
69
70
71

72
73
74
75
76

77
78
79
80
81
82
83
84







-
+




-
+




-
+







	OFRunLoop *_inRunLoop;
}

/*!
 * The time interval in which the timer will repeat, if it is a repeating
 * timer.
 */
@property (readonly) of_time_interval_t timeInterval;
@property (readonly, nonatomic) of_time_interval_t timeInterval;

/*!
 * Whether the timer is repeating.
 */
@property (readonly, getter=isRepeating) bool repeating;
@property (readonly, nonatomic, getter=isRepeating) bool repeating;

/*!
 * Whether the timer is valid.
 */
@property (readonly, getter=isValid) bool valid;
@property (readonly, nonatomic, getter=isValid) bool valid;

/*!
 * @brief Creates and schedules a new timer with the specified time interval.
 *
 * @param timeInterval The time interval after which the timer should be fired
 * @param target The target on which to call the selector
 * @param selector The selector to call on the target

Modified src/OFURL.h from [de5ad4004e] to [2905af2049].

42
43
44
45
46
47
48
49

50
51
52
53
54
55
56
42
43
44
45
46
47
48

49
50
51
52
53
54
55
56







-
+







 * The host part of the URL.
 */
@property (nonatomic, copy) OFString *host;

/*!
 * The port part of the URL.
 */
@property uint16_t port;
@property (nonatomic) uint16_t port;

/*!
 * The user part of the URL.
 */
@property OF_NULLABLE_PROPERTY (nonatomic, copy) OFString *user;

/*!

Modified src/OFXMLElementBuilder.h from [123ad23954] to [f7df881b5d].

108
109
110
111
112
113
114
115

116
117
118
119
120
121
122
123
124
125
126
108
109
110
111
112
113
114

115
116
117
118
119
120
121
122
123
124
125
126







-
+











	OFMutableArray OF_GENERIC(OFXMLElement *) *_stack;
	id <OFXMLElementBuilderDelegate> _delegate;
}

/*!
 * The delegate for the OFXMLElementBuilder.
 */
@property OF_NULLABLE_PROPERTY (assign)
@property OF_NULLABLE_PROPERTY (nonatomic, assign)
    id <OFXMLElementBuilderDelegate> delegate;

/*!
 * @brief Creates a new element builder.
 *
 * @return A new, autoreleased OFXMLElementBuilder
 */
+ (instancetype)elementBuilder;
@end

OF_ASSUME_NONNULL_END

Modified src/OFXMLParser.h from [cd9a216dbc] to [1de8f7a1f4].

174
175
176
177
178
179
180
181


182
183
184
185
186
187
188
189
190

191
192
193
194
195
196
197
174
175
176
177
178
179
180

181
182
183
184
185
186
187
188
189
190

191
192
193
194
195
196
197
198







-
+
+








-
+







	of_string_encoding_t _encoding;
	size_t _depthLimit;
}

/*!
 * The delegate that is used by the XML parser.
 */
@property OF_NULLABLE_PROPERTY (assign) id <OFXMLParserDelegate> delegate;
@property OF_NULLABLE_PROPERTY (nonatomic, assign)
    id <OFXMLParserDelegate> delegate;

/*!
 * The depth limit for the XML parser.
 *
 * If the depth limit is exceeded, an OFMalformedXMLException is thrown.
 *
 * The default is 32. 0 means unlimited (insecure!).
 */
@property size_t depthLimit;
@property (nonatomic) size_t depthLimit;

/*!
 * @brief Creates a new XML parser.
 *
 * @return A new, autoreleased OFXMLParser
 */
+ (instancetype)parser;

Modified src/OFZIPArchiveEntry+Private.h from [ad70cd24c3] to [70580d8166].

15
16
17
18
19
20
21

22
23


24
25
26
27
28
15
16
17
18
19
20
21
22


23
24
25
26
27
28
29







+
-
-
+
+





 */

#import "OFZIPArchive.h"

OF_ASSUME_NONNULL_BEGIN

@interface OFZIPArchiveEntry ()
@property (readonly, nonatomic)
@property (readonly) uint16_t OF_lastModifiedFileTime, OF_lastModifiedFileDate;
@property (readonly) int64_t OF_localFileHeaderOffset;
    uint16_t OF_lastModifiedFileTime, OF_lastModifiedFileDate;
@property (readonly, nonatomic) int64_t OF_localFileHeaderOffset;

- (instancetype)OF_initWithStream: (OFStream *)stream OF_METHOD_FAMILY(init);
@end

OF_ASSUME_NONNULL_END

Modified src/OFZIPArchiveEntry.h from [c93bbb12ac] to [4fa095ee4c].

116
117
118
119
120
121
122
123

124
125
126
127
128
129
130
131
132

133
134
135
136
137
138
139
140
141
142
143
144
145
146

147
148
149
150
151

152
153
154
155
156

157
158
159
160
161

162
163
164
165
166
167
168
169

170
171
172
173
174
175
176

177
178
179
180
181
182
183
116
117
118
119
120
121
122

123
124
125
126
127
128
129
130
131

132
133
134
135
136
137
138
139
140
141
142
143
144
145

146
147
148
149
150

151
152
153
154
155

156
157
158
159
160

161
162
163
164
165
166
167
168

169
170
171
172
173
174
175

176
177
178
179
180
181
182
183







-
+








-
+













-
+




-
+




-
+




-
+







-
+






-
+







/*!
 * The version which made the entry.
 *
 * The lower 8 bits are the ZIP specification version.@n
 * The upper 8 bits are the attribute compatibility.
 * See @ref of_zip_archive_entry_attribute_compatibility.
 */
@property (readonly) uint16_t versionMadeBy;
@property (readonly, nonatomic) uint16_t versionMadeBy;

/*!
 * The minimum version required to extract the file.
 *
 * The lower 8 bits are the ZIP specification version.@n
 * The upper 8 bits are the attribute compatibility.
 * See @ref of_zip_archive_entry_attribute_compatibility.
 */
@property (readonly) uint16_t minVersionNeeded;
@property (readonly, nonatomic) uint16_t minVersionNeeded;

/*!
 * The compression method of the entry.
 *
 * Supported values are:
 * Value                                             | Description
 * --------------------------------------------------|---------------
 * OF_ZIP_ARCHIVE_ENTRY_COMPRESSION_METHOD_NONE      | No compression
 * OF_ZIP_ARCHIVE_ENTRY_COMPRESSION_METHOD_DEFLATE   | Deflate
 * OF_ZIP_ARCHIVE_ENTRY_COMPRESSION_METHOD_DEFLATE64 | Deflate64
 *
 * Other values may be returned, but the file cannot be extracted then.
 */
@property (readonly) uint16_t compressionMethod;
@property (readonly, nonatomic) uint16_t compressionMethod;

/*!
 * The compressed size of the entry's file.
 */
@property (readonly) uint64_t compressedSize;
@property (readonly, nonatomic) uint64_t compressedSize;

/*!
 * The uncompressed size of the entry's file.
 */
@property (readonly) uint64_t uncompressedSize;
@property (readonly, nonatomic) uint64_t uncompressedSize;

/*!
 * The CRC32 checksum of the entry's file.
 */
@property (readonly) uint32_t CRC32;
@property (readonly, nonatomic) uint32_t CRC32;

/*!
 * The version specific attributes.
 *
 * The meaning of the version specific attributes depends on the attribute
 * compatibility part of the version that made the entry.
 */
@property (readonly) uint32_t versionSpecificAttributes;
@property (readonly, nonatomic) uint32_t versionSpecificAttributes;

/*!
 * The general purpose bit flag of the entry.
 *
 * See the ZIP specification for details.
 */
@property (readonly) uint16_t generalPurposeBitFlag;
@property (readonly, nonatomic) uint16_t generalPurposeBitFlag;

- init OF_UNAVAILABLE;

/*!
 * @brief Returns the last modification date of the entry's file.
 *
 * @return The last modification date of the entry's file

Modified src/exceptions/OFAcceptFailedException.h from [a7014ba993] to [c633b0648f].

38
39
40
41
42
43
44
45

46
47
48
49
50
51
52
38
39
40
41
42
43
44

45
46
47
48
49
50
51
52







-
+







 * The socket which could not accept a connection.
 */
@property (readonly, nonatomic) id socket;

/*!
 * @return The errno from when the exception was created.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased accept failed exception.
 *
 * @param socket The socket which could not accept a connection

Modified src/exceptions/OFBindFailedException.h from [872d20117e] to [3582fff9a7].

40
41
42
43
44
45
46
47

48
49
50
51
52
53
54
55
56
57

58
59
60
61
62
63
64
40
41
42
43
44
45
46

47
48
49
50
51
52
53
54
55
56

57
58
59
60
61
62
63
64







-
+









-
+







 * The host on which binding failed.
 */
@property (readonly, nonatomic) OFString *host;

/*!
 * The port on which binding failed.
 */
@property (readonly) uint16_t port;
@property (readonly, nonatomic) uint16_t port;

/*!
 * The socket which could not be bound.
 */
@property (readonly, nonatomic) id socket;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased bind failed exception.
 *
 * @param host The host on which binding failed

Modified src/exceptions/OFChangeCurrentDirectoryPathFailedException.h from [2478d8ba0a] to [96575fda4d].

36
37
38
39
40
41
42
43

44
45
46
47
48
49
50
36
37
38
39
40
41
42

43
44
45
46
47
48
49
50







-
+







 * The path of the directory to which the current path could not be changed.
 */
@property (readonly, nonatomic) OFString *path;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased change current directory path failed
 *	  exception.
 *

Modified src/exceptions/OFChangeOwnerFailedException.h from [2bd12325f5] to [28080b3b24].

44
45
46
47
48
49
50
51

52
53
54
55
56
57
58
44
45
46
47
48
49
50

51
52
53
54
55
56
57
58







-
+







 * The new group for the item.
 */
@property OF_NULLABLE_PROPERTY (readonly, nonatomic) OFString *group;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased change owner failed exception.
 *
 * @param path The path of the item

Modified src/exceptions/OFChangePermissionsFailedException.h from [7d8a42842b] to [6dfb3b7536].

39
40
41
42
43
44
45
46

47
48
49
50
51

52
53
54
55
56
57
58
39
40
41
42
43
44
45

46
47
48
49
50

51
52
53
54
55
56
57
58







-
+




-
+







 * The path of the item.
 */
@property (readonly, nonatomic) OFString *path;

/*!
 * The new permissions for the item.
 */
@property (readonly) mode_t permissions;
@property (readonly, nonatomic) mode_t permissions;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased change permissions failed exception.
 *
 * @param path The path of the item

Modified src/exceptions/OFConnectionFailedException.h from [0154995510] to [1f7fe5d883].

45
46
47
48
49
50
51
52

53
54
55
56
57

58
59
60
61
62
63
64
45
46
47
48
49
50
51

52
53
54
55
56

57
58
59
60
61
62
63
64







-
+




-
+







 * The host to which the connection failed.
 */
@property (readonly, nonatomic) OFString *host;

/*!
 * The port on the host to which the connection failed.
 */
@property (readonly) uint16_t port;
@property (readonly, nonatomic) uint16_t port;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased connection failed exception.
 *
 * @param host The host to which the connection failed

Modified src/exceptions/OFCopyItemFailedException.h from [2dd4967598] to [3ba8604826].

39
40
41
42
43
44
45
46

47
48
49
50
51
52
53
39
40
41
42
43
44
45

46
47
48
49
50
51
52
53







-
+







 * The destination path.
 */
@property (readonly, nonatomic) OFString *destinationPath;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased copy item failed exception.
 *
 * @param sourcePath The original path

Modified src/exceptions/OFCreateDirectoryFailedException.h from [2fa380f286] to [44563be7f3].

35
36
37
38
39
40
41
42

43
44
45
46
47
48
49
35
36
37
38
39
40
41

42
43
44
45
46
47
48
49







-
+







 * The path of the directory which couldn't be created.
 */
@property (readonly, nonatomic) OFString *path;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased create directory failed exception.
 *
 * @param path A string with the path of the directory which could not be

Modified src/exceptions/OFCreateSymbolicLinkFailedException.h from [691cb6e6d9] to [1bdb6bb6d4].

40
41
42
43
44
45
46
47

48
49
50
51
52
53
54
40
41
42
43
44
45
46

47
48
49
50
51
52
53
54







-
+







 * The destination for the symlink.
 */
@property (readonly, nonatomic) OFString *destinationPath;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased create symbolic link failed exception.
 *
 * @param sourcePath The source for the symbolic link

Modified src/exceptions/OFGetOptionFailedException.h from [f743d09cdc] to [e79b2ff6e7].

36
37
38
39
40
41
42
43

44
45
46
47
48
49
50
36
37
38
39
40
41
42

43
44
45
46
47
48
49
50







-
+







 * The stream for which the option could not be retrieved.
 */
@property (readonly, nonatomic) OFStream *stream;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased get option failed exception.
 *
 * @param stream The stream for which the option could not be gotten

Modified src/exceptions/OFInvalidJSONException.h from [779eaeefae] to [a8c0d937c1].

34
35
36
37
38
39
40
41

42
43
44
45
46
47
48
34
35
36
37
38
39
40

41
42
43
44
45
46
47
48







-
+







 * The string containing the invalid JSON representation.
 */
@property OF_NULLABLE_PROPERTY (readonly, nonatomic) OFString *string;

/*!
 * The line in which parsing the JSON representation failed.
 */
@property (readonly) size_t line;
@property (readonly, nonatomic) size_t line;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased invalid JSON exception.
 *
 * @param string The string containing the invalid JSON representation

Modified src/exceptions/OFLinkFailedException.h from [46e9998ad9] to [88dd7ed2e3].

39
40
41
42
43
44
45
46

47
48
49
50
51
52
53
39
40
41
42
43
44
45

46
47
48
49
50
51
52
53







-
+







 * A string with the destination for the link.
 */
@property (readonly, nonatomic) OFString *destinationPath;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased link failed exception.
 *
 * @param sourcePath The source for the link

Modified src/exceptions/OFListenFailedException.h from [ee0d335219] to [fa47660530].

38
39
40
41
42
43
44
45

46
47
48
49
50

51
52
53
54
55
56
57
38
39
40
41
42
43
44

45
46
47
48
49

50
51
52
53
54
55
56
57







-
+




-
+







 * The socket which failed to listen.
 */
@property (readonly, nonatomic) id socket;

/*!
 * The requested back log.
 */
@property (readonly) int backLog;
@property (readonly, nonatomic) int backLog;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased listen failed exception.
 *
 * @param socket The socket which failed to listen

Modified src/exceptions/OFMemoryNotPartOfObjectException.h from [4b7434983f] to [12cc3efa95].

30
31
32
33
34
35
36
37

38
39
40
41
42
43
44
30
31
32
33
34
35
36

37
38
39
40
41
42
43
44







-
+







	void *_pointer;
	id _object;
}

/*!
 * A pointer to the memory which is not part of the object.
 */
@property (readonly) void *pointer;
@property (readonly, nonatomic) void *pointer;

/*!
 * The object which the memory is not part of.
 */
@property (readonly, nonatomic) id object;

+ (instancetype)exception OF_UNAVAILABLE;

Modified src/exceptions/OFMoveItemFailedException.h from [803e54d164] to [3fdafa72d1].

39
40
41
42
43
44
45
46

47
48
49
50
51
52
53
39
40
41
42
43
44
45

46
47
48
49
50
51
52
53







-
+







 * The new path.
 */
@property (readonly, nonatomic) OFString *destinationPath;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased move item failed exception.
 *
 * @param sourcePath The original path

Modified src/exceptions/OFNotImplementedException.h from [b5efbf83eb] to [6af9ecca7d].

30
31
32
33
34
35
36
37

38
39
40
41
42
43
44
30
31
32
33
34
35
36

37
38
39
40
41
42
43
44







-
+







	SEL _selector;
	id _object;
}

/*!
 * The selector which is not or not fully implemented.
 */
@property (readonly) SEL selector;
@property (readonly, nonatomic) SEL selector;

/*!
 * The object which does not (fully) implement the selector.
 */
@property (readonly, nonatomic) id object;

+ (instancetype)exception OF_UNAVAILABLE;

Modified src/exceptions/OFObserveFailedException.h from [df4469a978] to [9887d9256b].

36
37
38
39
40
41
42
43

44
45
46
47
48
49
50
36
37
38
39
40
41
42

43
44
45
46
47
48
49
50







-
+







 * The observer which failed to observe.
 */
@property (readonly, nonatomic) OFKernelEventObserver *observer;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased observe failed exception.
 *
 * @param observer The observer which failed to observe

Modified src/exceptions/OFOpenItemFailedException.h from [bc70286fc7] to [18f5ca0ccc].

39
40
41
42
43
44
45
46

47
48
49
50
51
52
53
39
40
41
42
43
44
45

46
47
48
49
50
51
52
53







-
+







 * The mode in which the item should have been opened.
 */
@property OF_NULLABLE_PROPERTY (readonly, nonatomic) OFString *mode;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased open item failed exception.
 *
 * @param path A string with the path of the item tried to open

Modified src/exceptions/OFOutOfMemoryException.h from [6df6fe3bd8] to [38bafbd401].

28
29
30
31
32
33
34
35

36
37
38
39
40
41
42
28
29
30
31
32
33
34

35
36
37
38
39
40
41
42







-
+







{
	size_t _requestedSize;
}

/*!
 * The size of the memory that could not be allocated.
 */
@property (readonly) size_t requestedSize;
@property (readonly, nonatomic) size_t requestedSize;

/*!
 * @brief Creates a new, autoreleased no memory exception.
 *
 * @param requestedSize The size of the memory that could not be allocated
 * @return A new, autoreleased no memory exception
 */

Modified src/exceptions/OFReadOrWriteFailedException.h from [b495c67239] to [eb2334224b].

36
37
38
39
40
41
42
43

44
45
46
47
48

49
50
51
52
53
54
55
36
37
38
39
40
41
42

43
44
45
46
47

48
49
50
51
52
53
54
55







-
+




-
+







 * The stream which caused the read or write failed exception.
 */
@property (readonly, nonatomic) id object;

/*!
 * The requested length of the data that could not be read / written.
 */
@property (readonly) size_t requestedLength;
@property (readonly, nonatomic) size_t requestedLength;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased read or write failed exception.
 *
 * @param object The object from which reading or to which writing failed

Modified src/exceptions/OFRemoveItemFailedException.h from [7370f97932] to [112e6664c1].

34
35
36
37
38
39
40
41

42
43
44
45
46
47
48
34
35
36
37
38
39
40

41
42
43
44
45
46
47
48







-
+







 * The path of the item which could not be removed.
 */
@property (readonly, nonatomic) OFString *path;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased remove failed exception.
 *
 * @param path The path of the item which could not be removed

Modified src/exceptions/OFSandboxActivationFailedException.h from [bce4153e83] to [b1df1eba39].

37
38
39
40
41
42
43
44

45
46
47
48
49
50
51
37
38
39
40
41
42
43

44
45
46
47
48
49
50
51







-
+







 * The sandbox which could not be activated.
 */
@property (readonly, nonatomic) OFSandbox *sandbox;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased sandboxing failed exception.
 *
 * @param sandbox The sandbox which could not be activated

Modified src/exceptions/OFSeekFailedException.h from [f9fc679640] to [2cb0456fd7].

36
37
38
39
40
41
42
43

44
45
46
47
48

49
50
51
52
53

54
55
56
57
58
59
60
36
37
38
39
40
41
42

43
44
45
46
47

48
49
50
51
52

53
54
55
56
57
58
59
60







-
+




-
+




-
+







 * The stream for which seeking failed.
 */
@property (readonly, nonatomic) OFSeekableStream *stream;

/*!
 * The offset to which seeking failed.
 */
@property (readonly) of_offset_t offset;
@property (readonly, nonatomic) of_offset_t offset;

/*!
 * To what the offset is relative.
 */
@property (readonly) int whence;
@property (readonly, nonatomic) int whence;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased seek failed exception.
 *
 * @param stream The stream for which seeking failed

Modified src/exceptions/OFSetOptionFailedException.h from [a96b5b7e0c] to [de32f0a06b].

36
37
38
39
40
41
42
43

44
45
46
47
48
49
50
36
37
38
39
40
41
42

43
44
45
46
47
48
49
50







-
+







 * The stream for which the option could not be set.
 */
@property (readonly, nonatomic) OFStream *stream;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased set option failed exception.
 *
 * @param stream The stream for which the option could not be set

Modified src/exceptions/OFStatItemFailedException.h from [0717b54372] to [abe62eddf9].

34
35
36
37
38
39
40
41

42
43
44
45
46
47
48
34
35
36
37
38
39
40

41
42
43
44
45
46
47
48







-
+







 * A string with the path of the item whose status could not be retrieved.
 */
@property (readonly, nonatomic) OFString *path;

/*!
 * The errno of the error that occurred.
 */
@property (readonly) int errNo;
@property (readonly, nonatomic) int errNo;

+ (instancetype)exception OF_UNAVAILABLE;

/*!
 * @brief Creates a new, autoreleased stat item failed exception.
 *
 * @param path A string with the path of the item whose status could not be

Modified src/exceptions/OFThreadStillRunningException.h from [6ad8b75800] to [d232a7942a].

34
35
36
37
38
39
40
41

42
43
44
45
46
47
48
34
35
36
37
38
39
40

41
42
43
44
45
46
47
48







-
+







{
	OFThread *_thread;
}

/*!
 * The thread which is still running.
 */
@property OF_NULLABLE_PROPERTY (readonly, retain) OFThread *thread;
@property OF_NULLABLE_PROPERTY (readonly, nonatomic) OFThread *thread;

/*!
 * @brief Creates a new, autoreleased thread still running exception.
 *
 * @param thread The thread which is still running
 * @return A new, autoreleased thread still running exception
 */

Modified tests/Makefile from [2dc40d834b] to [21deeca32c].

146
147
148
149
150
151
152

153
154
155
146
147
148
149
150
151
152
153
154
155
156







+



	ndstool -c $@ -9 $< -d nds-data
	rm -fr nds-data

${PROG_NOINST}.3dsx: ${PROG_NOINST}
	3dsxtool $< $@

CPPFLAGS += -I../src -I../src/exceptions -I../src/runtime -I.. -DSTDOUT
OBJCFLAGS += ${TESTS_OBJCFLAGS}
LIBS := -L../src -lobjfw ${TESTS_LIBS} ${LIBS}
LDFLAGS += ${MAP_LDFLAGS}
LD = ${OBJC}

Modified tests/OFObjectTests.m from [2156cf6ce1] to [bb532d1546].

50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71















72
73
74
75
76
77
78
50
51
52
53
54
55
56















57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78







-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







	unsigned int _unsignedIntValue;
	unsigned long _unsignedLongValue;
	unsigned long long _unsignedLongLongValue;
	float _floatValue;
	double _doubleValue;
}

@property (retain) id objectValue;
@property Class classValue;
@property (getter=isBoolValue) bool boolValue;
@property char charValue;
@property short shortValue;
@property int intValue;
@property long longValue;
@property long long longLongValue;
@property unsigned char unsignedCharValue;
@property unsigned short unsignedShortValue;
@property unsigned int unsignedIntValue;
@property unsigned long unsignedLongValue;
@property unsigned long long unsignedLongLongValue;
@property float floatValue;
@property double doubleValue;
@property (nonatomic, retain) id objectValue;
@property (nonatomic) Class classValue;
@property (nonatomic, getter=isBoolValue) bool boolValue;
@property (nonatomic) char charValue;
@property (nonatomic) short shortValue;
@property (nonatomic) int intValue;
@property (nonatomic) long longValue;
@property (nonatomic) long long longLongValue;
@property (nonatomic) unsigned char unsignedCharValue;
@property (nonatomic) unsigned short unsignedShortValue;
@property (nonatomic) unsigned int unsignedIntValue;
@property (nonatomic) unsigned long unsignedLongValue;
@property (nonatomic) unsigned long long unsignedLongLongValue;
@property (nonatomic) float floatValue;
@property (nonatomic) double doubleValue;
@end

@implementation MyObj
@synthesize objectValue = _objectValue, classValue = _classValue;
@synthesize boolValue = _boolValue, charValue = _charValue;
@synthesize shortValue = _shortValue, intValue = _intValue;
@synthesize longValue = _longValue, longLongValue = _longLongValue;