ObjFW  Check-in [80e1a9655b]

Overview
Comment:Add OF_NULLABLE_PROPERTY

This is necessary to make GCC (>= 4.6 and Apple GCC) happy as they don't
like the list of property attributes ending in a comma.

Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 80e1a9655beab3177781fb00694e45a0bf7b337edd1f0a7a66ab21f7e2ef5473
User & Date: js on 2015-06-17 22:11:31
Other Links: manifest | tags
Context
2015-06-17
22:19
utils/ofhttp: Make old Apple GCC happy check-in: a3f24bdd18 user: js tags: trunk
22:11
Add OF_NULLABLE_PROPERTY check-in: 80e1a9655b user: js tags: trunk
2015-06-14
13:10
OFDate: Improve handling of distant past / future check-in: 168b748eb8 user: js tags: trunk
Changes

Modified src/OFApplication.h from [e950676ac5] to [ed8ed6f607].

131
132
133
134
135
136
137
138

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

138
139
140
141
142
143
144
145







-
+







}

#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy, nonatomic) OFString *programName;
@property (readonly, copy, nonatomic) OFArray OF_GENERIC(OFString*) *arguments;
@property (readonly, copy, nonatomic)
    OFDictionary OF_GENERIC(OFString*, OFString*) *environment;
@property (assign, nullable) id <OFApplicationDelegate> delegate;
@property OF_NULLABLE_PROPERTY (assign) id <OFApplicationDelegate> delegate;
#endif

/*!
 * @brief Returns the only OFApplication instance in the application.
 *
 * @return The only OFApplication instance in the application
 */

Modified src/OFHTTPClient.h from [74c3496cfd] to [1d478e9a98].

106
107
108
109
110
111
112
113

114
115
116
117
118
119
120
106
107
108
109
110
111
112

113
114
115
116
117
118
119
120







-
+







	OFTCPSocket *_socket;
	OFURL *_lastURL;
	bool _lastWasHEAD;
	OFHTTPResponse *_lastResponse;
}

#ifdef OF_HAVE_PROPERTIES
@property (assign, nullable) id <OFHTTPClientDelegate> delegate;
@property OF_NULLABLE_PROPERTY (assign) id <OFHTTPClientDelegate> delegate;
@property bool insecureRedirectsAllowed;
#endif

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

Modified src/OFHTTPRequest.h from [a0120e2911] to [2b094f8687].

80
81
82
83
84
85
86

87

88
89
90


91
92
93
94
95
96
97
80
81
82
83
84
85
86
87

88



89
90
91
92
93
94
95
96
97







+
-
+
-
-
-
+
+







	OFString *_remoteAddress;
}

#ifdef OF_HAVE_PROPERTIES
@property (copy) OFURL *URL;
@property of_http_request_method_t method;
@property of_http_request_protocol_version_t protocolVersion;
@property OF_NULLABLE_PROPERTY (copy)
@property (copy, nullable) OFDictionary OF_GENERIC(OFString*, OFString*)
    OFDictionary OF_GENERIC(OFString*, OFString*) *headers;
    *headers;
@property (retain, nullable) OFDataArray *body;
@property (copy, nullable) OFString *remoteAddress;
@property OF_NULLABLE_PROPERTY (retain) OFDataArray *body;
@property OF_NULLABLE_PROPERTY (copy) OFString *remoteAddress;
#endif

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

Modified src/OFHTTPResponse.h from [043802ccf0] to [127c6d8f9d].

32
33
34
35
36
37
38

39

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

40

41
42
43
44
45
46
47







+
-
+
-







	short _statusCode;
	OFDictionary OF_GENERIC(OFString*, OFString*) *_headers;
}

#ifdef OF_HAVE_PROPERTIES
@property of_http_request_protocol_version_t protocolVersion;
@property short statusCode;
@property OF_NULLABLE_PROPERTY (copy)
@property (copy, nullable) OFDictionary OF_GENERIC(OFString*, OFString*)
    OFDictionary OF_GENERIC(OFString*, OFString*) *headers;
    *headers;
#endif

/*!
 * @brief Sets the protocol version of the HTTP request reply.
 *
 * @param protocolVersion The protocol version of the HTTP request reply
 */

Modified src/OFHTTPServer.h from [a9420ff4db] to [0b4b52c4cd].

75
76
77
78
79
80
81
82

83
84
85


86
87
88
89
90
91
92
75
76
77
78
79
80
81

82
83


84
85
86
87
88
89
90
91
92







-
+

-
-
+
+







	uint16_t _port;
	id <OFHTTPServerDelegate> _delegate;
	OFString *_name;
	OFTCPSocket *_listeningSocket;
}

#ifdef OF_HAVE_PROPERTIES
@property (copy, nullable) OFString *host;
@property OF_NULLABLE_PROPERTY (copy) OFString *host;
@property uint16_t port;
@property (assign, nullable) id <OFHTTPServerDelegate> delegate;
@property (copy, nullable) OFString *name;
@property OF_NULLABLE_PROPERTY (assign) id <OFHTTPServerDelegate> delegate;
@property OF_NULLABLE_PROPERTY (copy) OFString *name;
#endif

/*!
 * @brief Creates a new HTTP server.
 *
 * @return A new HTTP server
 */

Modified src/OFIntrospection.h from [0bd232c6bc] to [061b43fb0e].

48
49
50
51
52
53
54
55

56
57
58
59
60
61
62
48
49
50
51
52
53
54

55
56
57
58
59
60
61
62







-
+







	OFString *_name;
	const char *_typeEncoding;
}

#ifdef OF_HAVE_PROPERTIES
@property (readonly) SEL selector;
@property (readonly, copy) OFString *name;
@property (assign, readonly, nullable) const char *typeEncoding;
@property OF_NULLABLE_PROPERTY (assign, readonly) const char *typeEncoding;
#endif

/*!
 * @brief Returns the selector of the method.
 *
 * @return The selector of the method
 */
88
89
90
91
92
93
94
95

96
97
98
99
100
101
102
88
89
90
91
92
93
94

95
96
97
98
99
100
101
102







-
+







	unsigned _attributes;
	OFString *_getter, *_setter;
}

#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy) OFString *name;
@property (readonly) unsigned attributes;
@property (copy, readonly, nullable) OFString *getter, *setter;
@property OF_NULLABLE_PROPERTY (copy, readonly) OFString *getter, *setter;
#endif

/*!
 * @brief Returns the name of the property.
 *
 * @return The name of the property
 */
149
150
151
152
153
154
155
156

157
158
159
160
161
162
163
149
150
151
152
153
154
155

156
157
158
159
160
161
162
163







-
+







	const char *_typeEncoding;
	ptrdiff_t _offset;
}

#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy) OFString *name;
@property (readonly) ptrdiff_t offset;
@property (assign, readonly, nullable) const char *typeEncoding;
@property OF_NULLABLE_PROPERTY (assign, readonly) const char *typeEncoding;
#endif

/*!
 * @brief Returns the name of the instance variable.
 *
 * @return The name of the instance variable
 */

Modified src/OFKernelEventObserver.h from [134a6fc2ce] to [dd8f6e2345].

125
126
127
128
129
130
131

132

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

133
134
135
136
137
138
139
140







+
-
+







#endif
#ifdef OF_HAVE_THREADS
	OFMutex *_mutex;
#endif
}

#ifdef OF_HAVE_PROPERTIES
@property OF_NULLABLE_PROPERTY (assign)
@property (assign, nullable) id <OFKernelEventObserverDelegate> delegate;
    id <OFKernelEventObserverDelegate> delegate;
#endif

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

Modified src/OFList.h from [5074e7258e] to [2c4a93e677].

57
58
59
60
61
62
63
64
65


66
67
68
69
70
71
72
57
58
59
60
61
62
63


64
65
66
67
68
69
70
71
72







-
-
+
+







	of_list_object_t *_firstListObject;
	of_list_object_t *_lastListObject;
	size_t		 _count;
	unsigned long	 _mutations;
}

#ifdef OF_HAVE_PROPERTIES
@property (readonly, nullable) of_list_object_t *firstListObject;
@property (readonly, nullable) of_list_object_t *lastListObject;
@property OF_NULLABLE_PROPERTY (readonly) of_list_object_t *firstListObject;
@property OF_NULLABLE_PROPERTY (readonly) of_list_object_t *lastListObject;
#endif

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

Modified src/OFLocking.h from [aabddd2a24] to [5d56441827].

21
22
23
24
25
26
27
28

29
30
31
32
33
34
35
21
22
23
24
25
26
27

28
29
30
31
32
33
34
35







-
+







/*!
 * @protocol OFLocking OFLocking.h ObjFW/OFLocking.h
 *
 * @brief A protocol for locks.
 */
@protocol OFLocking <OFObject>
#ifdef OF_HAVE_PROPERTIES
@property (copy, nullable) OFString *name;
@property OF_NULLABLE_PROPERTY (copy) OFString *name;
#endif

/*!
 * @brief Locks the lock.
 */
- (void)lock;

Modified src/OFTCPSocket.h from [5654a78b4e] to [6382beb2ce].

65
66
67
68
69
70
71
72

73
74
75
76
77
78
79
65
66
67
68
69
70
71

72
73
74
75
76
77
78
79







-
+







	socklen_t _addressLength;
	OFString *_SOCKS5Host;
	uint16_t _SOCKS5Port;
}

#ifdef OF_HAVE_PROPERTIES
@property (readonly, getter=isListening) bool listening;
@property (copy, nullable) OFString *SOCKS5Host;
@property OF_NULLABLE_PROPERTY (copy) OFString *SOCKS5Host;
@property uint16_t SOCKS5Port;
@property (getter=isKeepAliveEnabled) bool keepAliveEnabled;
@property (getter=isTCPNoDelayEnabled) bool TCPNoDelayEnabled;
#endif

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

Modified src/OFTLSSocket.h from [968eca3d6d] to [d1223f2527].

53
54
55
56
57
58
59
60
61
62




63
64
65
66
67
68
69
53
54
55
56
57
58
59



60
61
62
63
64
65
66
67
68
69
70







-
-
-
+
+
+
+







 * @protocol OFTLSSocket OFTLSSocket.h ObjFW/OFTLSSocket.h
 *
 * @brief A protocol that should be implemented by 3rd-party libraries
 *	  implementing TLS.
 */
@protocol OFTLSSocket
#ifdef OF_HAVE_PROPERTIES
@property (assign, nullable) id <OFTLSSocketDelegate> delegate;
@property (copy, nullable) OFString *certificateFile, *privateKeyFile;
@property (assign, nullable) const char *privateKeyPassphrase;
@property OF_NULLABLE_PROPERTY (assign) id <OFTLSSocketDelegate> delegate;
@property OF_NULLABLE_PROPERTY (copy)
    OFString *certificateFile, *privateKeyFile;
@property OF_NULLABLE_PROPERTY (assign) const char *privateKeyPassphrase;
@property (getter=isCertificateVerificationEnabled)
    bool certificateVerificationEnabled;
#endif

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

Modified src/OFURL.h from [a3a984e369] to [f7f23cc369].

30
31
32
33
34
35
36
37

38
39
40

41
42
43

44
45
46
47
48
49
50
51
52
30
31
32
33
34
35
36

37

38

39

40

41


42
43
44
45
46
47
48







-
+
-

-
+
-

-
+
-
-







{
	OFString *_scheme, *_host;
	uint16_t _port;
	OFString *_user, *_password, *_path, *_parameters, *_query, *_fragment;
}

#ifdef OF_HAVE_PROPERTIES
@property (copy) OFString *scheme;
@property (copy) OFString *scheme, *host;
@property (copy) OFString *host;
@property uint16_t port;
@property (copy, nullable) OFString *user;
@property OF_NULLABLE_PROPERTY (copy) OFString *user, *password;
@property (copy, nullable) OFString *password;
@property (copy) OFString *path;
@property (copy, nullable) OFString *parameters;
@property OF_NULLABLE_PROPERTY (copy) OFString *parameters, *query, *fragment;
@property (copy, nullable) OFString *query;
@property (copy, nullable) OFString *fragment;
#endif

/*!
 * Creates a new URL.
 *
 * @return A new, autoreleased OFURL
 */

Modified src/OFXMLAttribute.h from [06dd68e3e3] to [bddff10d67].

30
31
32
33
34
35
36
37


38
39

40
41
42
43
44
45
46
30
31
32
33
34
35
36

37
38
39

40
41
42
43
44
45
46
47







-
+
+

-
+







@public
	OFString *_name, *_namespace, *_stringValue;
}

#ifdef OF_HAVE_PROPERTIES
@property (readonly, copy) OFString *name;
# ifdef __cplusplus
@property (readonly, copy, getter=namespace, nullable) OFString *namespace_;
@property OF_NULLABLE_PROPERTY (readonly, copy, getter=namespace)
    OFString *namespace_;
# else
@property (readonly, copy, nullable) OFString *namespace;
@property OF_NULLABLE_PROPERTY (readonly, copy) OFString *namespace;
# endif
#endif

/*!
 * @brief Creates a new XML attribute.
 *
 * @param name The name of the attribute

Modified src/OFXMLElement.h from [06c926080e] to [f0a48e322d].

39
40
41
42
43
44
45
46

47
48
49

50
51
52
53
54




55
56
57
58
59
60
61
39
40
41
42
43
44
45

46
47
48

49
50




51
52
53
54
55
56
57
58
59
60
61







-
+


-
+

-
-
-
-
+
+
+
+







	OFMutableDictionary OF_GENERIC(OFString*, OFString*) *_namespaces;
	OFMutableArray OF_GENERIC(OFXMLNode*) *_children;
}

#ifdef OF_HAVE_PROPERTIES
@property (copy) OFString *name;
# ifdef __cplusplus
@property (copy, getter=namespace, setter=setNamespace:, nullable)
@property OF_NULLABLE_PROPERTY (copy, getter=namespace, setter=setNamespace:)
    OFString *namespace_;
# else
@property (copy, nullable) OFString *namespace;
@property OF_NULLABLE_PROPERTY (copy) OFString *namespace;
# endif
@property (copy, nullable) OFString *defaultNamespace;
@property (copy, readonly, nullable) OFArray OF_GENERIC(OFXMLAttribute*)
    *attributes;
@property (copy, nullable) OFArray OF_GENERIC(OFXMLNode*) *children;
@property OF_NULLABLE_PROPERTY (copy) OFString *defaultNamespace;
@property OF_NULLABLE_PROPERTY (copy, readonly)
    OFArray OF_GENERIC(OFXMLAttribute*) *attributes;
@property OF_NULLABLE_PROPERTY (copy) OFArray OF_GENERIC(OFXMLNode*) *children;
#endif

/*!
 * @brief Creates a new XML element with the specified name.
 *
 * @param name The name for the element
 * @return A new autoreleased OFXMLElement with the specified element name

Modified src/OFXMLElementBuilder.h from [0cd8345c79] to [4ca47d4bb3].

109
110
111
112
113
114
115

116

117
118
119
120
121
122
123
109
110
111
112
113
114
115
116

117
118
119
120
121
122
123
124







+
-
+







@interface OFXMLElementBuilder: OFObject <OFXMLParserDelegate>
{
	OFMutableArray OF_GENERIC(OFXMLElement*) *_stack;
	id <OFXMLElementBuilderDelegate> _delegate;
}

#ifdef OF_HAVE_PROPERTIES
@property OF_NULLABLE_PROPERTY (assign)
@property (assign, nullable) id <OFXMLElementBuilderDelegate> delegate;
    id <OFXMLElementBuilderDelegate> delegate;
#endif

/*!
 * @brief Creates a new element builder.
 *
 * @return A new, autoreleased OFXMLElementBuilder
 */

Modified src/OFXMLParser.h from [67de382a36] to [8ab695520f].

174
175
176
177
178
179
180
181

182
183
184
185
186
187
188
174
175
176
177
178
179
180

181
182
183
184
185
186
187
188







-
+







	size_t _lineNumber;
	bool _lastCarriageReturn, _finishedParsing;
	of_string_encoding_t _encoding;
	size_t _depthLimit;
}

#ifdef OF_HAVE_PROPERTIES
@property (assign, nullable) id <OFXMLParserDelegate> delegate;
@property OF_NULLABLE_PROPERTY (assign) id <OFXMLParserDelegate> delegate;
@property size_t depthLimit;
#endif

/*!
 * @brief Creates a new XML parser.
 *
 * @return A new, autoreleased OFXMLParser

Modified src/macros.h from [6f2726fb11] to [67aef400e2].

175
176
177
178
179
180
181

182
183
184
185
186

187
188
189
190
191
192
193
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195







+





+







#endif

#if __has_feature(nullability)
# define OF_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin")
# define OF_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end")
# define OF_NONNULL __nonnull
# define OF_NULLABLE __nullable
# define OF_NULLABLE_PROPERTY(...) (__VA_ARGS__, nullable)
#else
# define OF_ASSUME_NONNULL_BEGIN
# define OF_ASSUME_NONNULL_END
# define OF_NONNULL
# define OF_NULLABLE
# define OF_NULLABLE_PROPERTY
# define nonnull
# define nullable
#endif

#if __has_feature(objc_kindof)
# define OF_KINDOF(cls) __kindof cls
#else