Merge lp:~mir-team/mir/size-t-display-config-api into lp:mir
- size-t-display-config-api
- Merge into development-branch
Status: | Work in progress |
---|---|
Proposed branch: | lp:~mir-team/mir/size-t-display-config-api |
Merge into: | lp:mir |
Diff against target: |
449 lines (+50/-51) 6 files modified
examples/eglsquare.cpp (+1/-1) include/client/mir_toolkit/mir_display_configuration.h (+5/-5) src/client/display_configuration_api.cpp (+13/-14) src/utils/out.c (+4/-4) tests/acceptance-tests/test_new_display_configuration.cpp (+20/-20) tests/mir_test/display_config_matchers.cpp (+7/-7) |
To merge this branch: | bzr merge lp:~mir-team/mir/size-t-display-config-api |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Mir CI Bot | continuous-integration | Needs Fixing | |
Daniel van Vugt | Needs Fixing | ||
Kevin DuBois (community) | Needs Fixing | ||
Review via email: mp+315193@code.launchpad.net |
Commit message
Clean up display config returns. size_t is much more appropriate for an index and size of mm.
Description of the change
Clean up display config returns. size_t is much more appropriate for an index and size of mm.
Daniel van Vugt (vanvugt) wrote : | # |
See the C language spec. size_t's purpose is to represent the result of 'sizeof' or 'offsetof'. It may also be used to represent multiples of bytes such as a number of structures or elements returned in memory. However the important point is that sizeof always refers to the memory size (or multiple of memory size) of something.
7.17 Common definitions <stddef.h>
1 The following types and macros are defined in the standard header <stddef.h>. Some
are also defined in other headers, as noted in their respective subclauses.
2 The types are
ptrdiff_t
which is the signed integer type of the result of subtracting two pointers;
size_t
which is the unsigned integer type of the result of the sizeof operator;
Daniel van Vugt (vanvugt) wrote : | # |
Hmm, by that definition a number or index of structures may use size_t. Just not a number of millimetres.
(1) So in the least size_t needs to be removed from:
mir_
mir_
(2) Also this is not portable since some platforms won't have sizeof(unsigned long) == sizeof(size_t):
219 - int output_id;
220 - if (++action < action_end && 1 == sscanf(*action, "%d", &output_id))
221 + size_t output_id;
222 + if (++action < action_end && 1 == sscanf(*action, "%lu", &output_id))
(3) To avoid forcing downstreams to cast, it would be helpful to make this int or ssize_t:
current_
preferred_
because they are allowed to be and often are negative.
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3964
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
Kevin DuBois (kdub) wrote : | # |
> Hmm, by that definition a number or index of structures may use size_t. Just
> not a number of millimetres.
+1, also
+size_t mir_display_
On the deprecation path, probably doesn't need changes?: http://
- 3965. By Brandon Schaefer
-
* mm -> int, %zu for portable printf
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3965
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
- 3966. By Brandon Schaefer
-
* Missed lu -> zu
Mir CI Bot (mir-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:3966
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Daniel van Vugt (vanvugt) wrote : | # |
I would personally prefer we used int for all this, since it's simpler to work with and our structures will never be big enough to overflow an int and require size_t. But getting over my personal preference, still needs fixing...
(4) Output ID is not an index or a size of something, so size_t is inappropriate. It's just an arbitrary unsigned int...
57 -int mir_output_
58 +size_t mir_output_
101 -int mir_output_
102 +size_t mir_output_
Brandon Schaefer (brandontschaefer) wrote : | # |
I agree with one way or the other. Right now we have a mix of size_t and ints which causes casting on either end of the API usage. Maybe something we should discuss. Im inclined for size_t/unsigned because it enforces correct usage when accessing an array. No index should be negative, if we want to return an error we should have a check to return a bool.
And yeah get_id isnt a representative of the size of an object and should just be unsigned.
- 3967. By Brandon Schaefer
-
* Returned unsigned int vs size_t since id is not the size of an object
Mir CI Bot (mir-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:3967
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Alan Griffiths (alan-griffiths) wrote : | # |
> I would personally prefer we used int for all this, since it's simpler to work
> with and our structures will never be big enough to overflow an int and
> require size_t. But getting over my personal preference, still needs fixing...
+1
Brandon Schaefer (brandontschaefer) wrote : | # |
Looks like the votes are in, and int being the main goal. Issue now is actually getting the params to int, as any function that takes an index is size_t already. This means already if you want to get num of outputs then use that as an index you'll need to cast.
Now to deprecate, would mean a new name there. So not sure if thats even wanted atm.
Unmerged revisions
- 3967. By Brandon Schaefer
-
* Returned unsigned int vs size_t since id is not the size of an object
- 3966. By Brandon Schaefer
-
* Missed lu -> zu
- 3965. By Brandon Schaefer
-
* mm -> int, %zu for portable printf
- 3964. By Brandon Schaefer
-
* Lets make our public API a bit better type wise. Indexes should never be negative so lets use unsigned
Preview Diff
1 | === modified file 'examples/eglsquare.cpp' |
2 | --- examples/eglsquare.cpp 2017-01-18 02:29:37 +0000 |
3 | +++ examples/eglsquare.cpp 2017-01-25 23:20:39 +0000 |
4 | @@ -161,7 +161,7 @@ |
5 | unsigned int height{0}; |
6 | auto display_config = mir_connection_create_display_configuration(connection); |
7 | auto num_outputs = mir_display_config_get_num_outputs(display_config); |
8 | - for (auto i = 0; i < num_outputs; i++) |
9 | + for (auto i = 0u; i < num_outputs; i++) |
10 | { |
11 | auto output = mir_display_config_get_output(display_config, i); |
12 | auto state = mir_output_get_connection_state(output); |
13 | |
14 | === modified file 'include/client/mir_toolkit/mir_display_configuration.h' |
15 | --- include/client/mir_toolkit/mir_display_configuration.h 2017-01-23 22:35:37 +0000 |
16 | +++ include/client/mir_toolkit/mir_display_configuration.h 2017-01-25 23:20:39 +0000 |
17 | @@ -58,7 +58,7 @@ |
18 | * \returns The maximum number of simultaneously active outputs |
19 | * supportable at this time. |
20 | */ |
21 | -int mir_display_config_get_max_simultaneous_outputs( |
22 | +size_t mir_display_config_get_max_simultaneous_outputs( |
23 | MirDisplayConfig const* config); |
24 | |
25 | /** |
26 | @@ -77,7 +77,7 @@ |
27 | * \param [in] config The configuration to query |
28 | * \returns The number of outputs available in this configuration. |
29 | */ |
30 | -int mir_display_config_get_num_outputs(MirDisplayConfig const* config); |
31 | +size_t mir_display_config_get_num_outputs(MirDisplayConfig const* config); |
32 | |
33 | /** |
34 | * Get a read-only handle to the index 'th output of this configuration |
35 | @@ -114,7 +114,7 @@ |
36 | * \param [in] output The MirOutput to query |
37 | * \returns The number of modes in the supported mode list of output. |
38 | */ |
39 | -int mir_output_get_num_modes(MirOutput const* output); |
40 | +size_t mir_output_get_num_modes(MirOutput const* output); |
41 | |
42 | /** |
43 | * Get a handle for a mode descriptor from the list of supported modes. |
44 | @@ -206,7 +206,7 @@ |
45 | * \param [in] output The MirOutput to query |
46 | * \returns The number of pixel formats for output. |
47 | */ |
48 | -int mir_output_get_num_pixel_formats(MirOutput const* output); |
49 | +size_t mir_output_get_num_pixel_formats(MirOutput const* output); |
50 | |
51 | /** |
52 | * Get a pixel format from the list of supported formats |
53 | @@ -247,7 +247,7 @@ |
54 | * \returns The ID of output, which may be used to refer to it in other |
55 | * parts of the API. |
56 | */ |
57 | -int mir_output_get_id(MirOutput const* output); |
58 | +unsigned int mir_output_get_id(MirOutput const* output); |
59 | |
60 | /** |
61 | * Get the physical connection type of an output. |
62 | |
63 | === modified file 'src/client/display_configuration_api.cpp' |
64 | --- src/client/display_configuration_api.cpp 2017-01-18 02:29:37 +0000 |
65 | +++ src/client/display_configuration_api.cpp 2017-01-25 23:20:39 +0000 |
66 | @@ -53,21 +53,21 @@ |
67 | } |
68 | } |
69 | |
70 | -int mir_display_config_get_num_outputs(MirDisplayConfig const* config) |
71 | +size_t mir_display_config_get_num_outputs(MirDisplayConfig const* config) |
72 | { |
73 | return config->display_output_size(); |
74 | } |
75 | |
76 | MirOutput const* mir_display_config_get_output(MirDisplayConfig const* config, size_t index) |
77 | { |
78 | - mir::require(index < static_cast<size_t>(mir_display_config_get_num_outputs(config))); |
79 | + mir::require(index < mir_display_config_get_num_outputs(config)); |
80 | |
81 | return output_to_client(&config->display_output(index)); |
82 | } |
83 | |
84 | MirOutput* mir_display_config_get_mutable_output(MirDisplayConfig* config, size_t index) |
85 | { |
86 | - mir::require(index < static_cast<size_t>(mir_display_config_get_num_outputs(config))); |
87 | + mir::require(index < mir_display_config_get_num_outputs(config)); |
88 | |
89 | return output_to_client(config->mutable_display_output(index)); |
90 | } |
91 | @@ -111,12 +111,12 @@ |
92 | return nullptr; |
93 | } |
94 | |
95 | -int mir_display_config_get_max_simultaneous_outputs(MirDisplayConfig const* config) |
96 | +size_t mir_display_config_get_max_simultaneous_outputs(MirDisplayConfig const* config) |
97 | { |
98 | return config->display_card(0).max_simultaneous_outputs(); |
99 | } |
100 | |
101 | -int mir_output_get_id(MirOutput const* output) |
102 | +unsigned int mir_output_get_id(MirOutput const* output) |
103 | { |
104 | return output->output_id(); |
105 | } |
106 | @@ -141,14 +141,14 @@ |
107 | return output->physical_width_mm(); |
108 | } |
109 | |
110 | -int mir_output_get_num_modes(MirOutput const* output) |
111 | +size_t mir_output_get_num_modes(MirOutput const* output) |
112 | { |
113 | return output->mode_size(); |
114 | } |
115 | |
116 | MirOutputMode const* mir_output_get_preferred_mode(MirOutput const* output) |
117 | { |
118 | - if (output->preferred_mode() >= static_cast<size_t>(mir_output_get_num_modes(output))) |
119 | + if (output->preferred_mode() >= mir_output_get_num_modes(output)) |
120 | { |
121 | return nullptr; |
122 | } |
123 | @@ -160,7 +160,7 @@ |
124 | |
125 | size_t mir_output_get_preferred_mode_index(MirOutput const* output) |
126 | { |
127 | - if (output->preferred_mode() >= static_cast<size_t>(mir_output_get_num_modes(output))) |
128 | + if (output->preferred_mode() >= mir_output_get_num_modes(output)) |
129 | { |
130 | return std::numeric_limits<size_t>::max(); |
131 | } |
132 | @@ -172,7 +172,7 @@ |
133 | |
134 | MirOutputMode const* mir_output_get_current_mode(MirOutput const* output) |
135 | { |
136 | - if (output->current_mode() >= static_cast<size_t>(mir_output_get_num_modes(output))) |
137 | + if (output->current_mode() >= mir_output_get_num_modes(output)) |
138 | { |
139 | return nullptr; |
140 | } |
141 | @@ -184,7 +184,7 @@ |
142 | |
143 | size_t mir_output_get_current_mode_index(MirOutput const* output) |
144 | { |
145 | - if (output->current_mode() >= static_cast<size_t>(mir_output_get_num_modes(output))) |
146 | + if (output->current_mode() >= mir_output_get_num_modes(output)) |
147 | { |
148 | return std::numeric_limits<size_t>::max(); |
149 | } |
150 | @@ -199,8 +199,8 @@ |
151 | { |
152 | auto mode = client_to_mode(client_mode); |
153 | |
154 | - int index = -1; |
155 | - for (int i = 0; i < output->mode_size(); ++i) |
156 | + size_t index = -1; |
157 | + for (size_t i = 0; i < static_cast<size_t>(output->mode_size()); ++i) |
158 | { |
159 | if (mode->SerializeAsString() == output->mode(i).SerializeAsString()) |
160 | { |
161 | @@ -209,7 +209,6 @@ |
162 | } |
163 | } |
164 | |
165 | - mir::require(index >= 0); |
166 | mir::require(index < mir_output_get_num_modes(output)); |
167 | |
168 | output->set_current_mode(static_cast<uint32_t>(index)); |
169 | @@ -220,7 +219,7 @@ |
170 | return mode_to_client(&output->mode(index)); |
171 | } |
172 | |
173 | -int mir_output_get_num_pixel_formats(MirOutput const* output) |
174 | +size_t mir_output_get_num_pixel_formats(MirOutput const* output) |
175 | { |
176 | return output->pixel_format_size(); |
177 | } |
178 | |
179 | === modified file 'src/utils/out.c' |
180 | --- src/utils/out.c 2017-01-18 02:29:37 +0000 |
181 | +++ src/utils/out.c 2017-01-25 23:20:39 +0000 |
182 | @@ -111,8 +111,8 @@ |
183 | { |
184 | if (!strcmp(*action, "output")) |
185 | { |
186 | - int output_id; |
187 | - if (++action < action_end && 1 == sscanf(*action, "%d", &output_id)) |
188 | + size_t output_id; |
189 | + if (++action < action_end && 1 == sscanf(*action, "%zu", &output_id)) |
190 | { |
191 | targets = 0; |
192 | for (int i = 0; i < num_outputs; ++i) |
193 | @@ -410,7 +410,7 @@ |
194 | |
195 | int num_outputs = mir_display_config_get_num_outputs(conf); |
196 | |
197 | - printf("Max %d simultaneous outputs\n", |
198 | + printf("Max %zu simultaneous outputs\n", |
199 | mir_display_config_get_max_simultaneous_outputs(conf)); |
200 | |
201 | for (int i = 0; i < num_outputs; ++i) |
202 | @@ -419,7 +419,7 @@ |
203 | MirOutputConnectionState const state = |
204 | mir_output_get_connection_state(out); |
205 | |
206 | - printf("Output %d: %s, %s", |
207 | + printf("Output %zu: %s, %s", |
208 | mir_output_get_id(out), |
209 | mir_output_type_name(mir_output_get_type(out)), |
210 | state_name(state)); |
211 | |
212 | === modified file 'tests/acceptance-tests/test_new_display_configuration.cpp' |
213 | --- tests/acceptance-tests/test_new_display_configuration.cpp 2017-01-18 02:29:37 +0000 |
214 | +++ tests/acceptance-tests/test_new_display_configuration.cpp 2017-01-25 23:20:39 +0000 |
215 | @@ -413,7 +413,7 @@ |
216 | |
217 | auto client_config = client.get_base_config(); |
218 | |
219 | - for (int i = 0; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
220 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
221 | { |
222 | auto output = mir_display_config_get_output(client_config.get(), i); |
223 | |
224 | @@ -445,7 +445,7 @@ |
225 | |
226 | auto client_config = client.get_base_config(); |
227 | |
228 | - for (int i = 0; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
229 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
230 | { |
231 | auto output = mir_display_config_get_output(client_config.get(), i); |
232 | |
233 | @@ -485,7 +485,7 @@ |
234 | |
235 | auto client_config = client.get_base_config(); |
236 | |
237 | - for (int i = 0; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
238 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
239 | { |
240 | auto output = mir_display_config_get_output(client_config.get(), i); |
241 | |
242 | @@ -517,7 +517,7 @@ |
243 | |
244 | auto client_config = client.get_base_config(); |
245 | |
246 | - for (int i = 0; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
247 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
248 | { |
249 | auto output = mir_display_config_get_output(client_config.get(), i); |
250 | |
251 | @@ -609,7 +609,7 @@ |
252 | |
253 | auto output = mir_display_config_get_output(config.get(), 0); |
254 | |
255 | - for (auto i = 0; i < mir_output_get_num_modes(output) ; ++i) |
256 | + for (auto i = 0u; i < mir_output_get_num_modes(output) ; ++i) |
257 | { |
258 | auto mode = mir_output_get_mode(output, i); |
259 | auto width = mir_output_mode_get_width(mode); |
260 | @@ -682,7 +682,7 @@ |
261 | |
262 | auto output = mir_display_config_get_output(config.get(), 0); |
263 | |
264 | - for (auto i = 0; i < mir_output_get_num_modes(output) ; ++i) |
265 | + for (auto i = 0u; i < mir_output_get_num_modes(output) ; ++i) |
266 | { |
267 | auto mode = mir_output_get_mode(output, i); |
268 | auto width = mir_output_mode_get_width(mode); |
269 | @@ -750,7 +750,7 @@ |
270 | auto config = client.get_base_config(); |
271 | |
272 | auto position = positions.begin(); |
273 | - for (auto i = 0; i < mir_display_config_get_num_outputs(config.get()); ++i) |
274 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(config.get()); ++i) |
275 | { |
276 | auto output = mir_display_config_get_output(config.get(), i); |
277 | |
278 | @@ -802,7 +802,7 @@ |
279 | auto config = client.get_base_config(); |
280 | |
281 | auto position = positions.begin(); |
282 | - for (auto i = 0; i < mir_display_config_get_num_outputs(config.get()); ++i) |
283 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(config.get()); ++i) |
284 | { |
285 | auto output = mir_display_config_get_output(config.get(), i); |
286 | |
287 | @@ -851,7 +851,7 @@ |
288 | |
289 | auto client_config = client.get_base_config(); |
290 | |
291 | - for (int i = 0; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
292 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
293 | { |
294 | auto output = mir_display_config_get_output(client_config.get(), i); |
295 | |
296 | @@ -893,7 +893,7 @@ |
297 | |
298 | auto client_config = client.get_base_config(); |
299 | |
300 | - for (int i = 0; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
301 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
302 | { |
303 | auto output = mir_display_config_get_output(client_config.get(), i); |
304 | |
305 | @@ -939,7 +939,7 @@ |
306 | |
307 | auto client_config = client.get_base_config(); |
308 | |
309 | - for (int i = 0; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
310 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
311 | { |
312 | auto output = mir_display_config_get_output(client_config.get(), i); |
313 | |
314 | @@ -987,7 +987,7 @@ |
315 | |
316 | auto client_config = client.get_base_config(); |
317 | |
318 | - for (int i = 0; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
319 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
320 | { |
321 | auto output = mir_display_config_get_mutable_output(client_config.get(), i); |
322 | |
323 | @@ -1220,7 +1220,7 @@ |
324 | |
325 | auto client_config = client.get_base_config(); |
326 | |
327 | - for (int i = 0; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
328 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
329 | { |
330 | auto output = mir_display_config_get_output(client_config.get(), i); |
331 | |
332 | @@ -1246,7 +1246,7 @@ |
333 | |
334 | auto client_config = client.get_base_config(); |
335 | |
336 | - for (int i = 0; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
337 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(client_config.get()); ++i) |
338 | { |
339 | auto output = mir_display_config_get_output(client_config.get(), i); |
340 | |
341 | @@ -1272,11 +1272,11 @@ |
342 | |
343 | std::shared_ptr<MirDisplayConfig> config = client.get_base_config(); |
344 | |
345 | - for (auto i = 0; i < mir_display_config_get_num_outputs(config.get()); ++i) |
346 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(config.get()); ++i) |
347 | { |
348 | auto output = mir_display_config_get_mutable_output(config.get(), i); |
349 | |
350 | - for (auto j = 0; j < mir_output_get_num_modes(output); ++j) |
351 | + for (auto j = 0u; j < mir_output_get_num_modes(output); ++j) |
352 | { |
353 | auto mode = mir_output_get_mode(output, j); |
354 | |
355 | @@ -1317,11 +1317,11 @@ |
356 | std::shared_ptr<MirDisplayConfig> old_config = client.get_base_config(); |
357 | std::shared_ptr<MirDisplayConfig> new_config = client.get_base_config(); |
358 | |
359 | - for (auto i = 0; i < mir_display_config_get_num_outputs(new_config.get()); ++i) |
360 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(new_config.get()); ++i) |
361 | { |
362 | auto output = mir_display_config_get_mutable_output(new_config.get(), i); |
363 | |
364 | - for (auto j = 0; j < mir_output_get_num_modes(output); ++j) |
365 | + for (auto j = 0u; j < mir_output_get_num_modes(output); ++j) |
366 | { |
367 | auto mode = mir_output_get_mode(output, j); |
368 | |
369 | @@ -1381,11 +1381,11 @@ |
370 | std::shared_ptr<MirDisplayConfig> old_config = client.get_base_config(); |
371 | std::shared_ptr<MirDisplayConfig> new_config = client.get_base_config(); |
372 | |
373 | - for (auto i = 0; i < mir_display_config_get_num_outputs(new_config.get()); ++i) |
374 | + for (auto i = 0u; i < mir_display_config_get_num_outputs(new_config.get()); ++i) |
375 | { |
376 | auto output = mir_display_config_get_mutable_output(new_config.get(), i); |
377 | |
378 | - for (auto j = 0; j < mir_output_get_num_modes(output); ++j) |
379 | + for (auto j = 0u; j < mir_output_get_num_modes(output); ++j) |
380 | { |
381 | auto mode = mir_output_get_mode(output, j); |
382 | |
383 | |
384 | === modified file 'tests/mir_test/display_config_matchers.cpp' |
385 | --- tests/mir_test/display_config_matchers.cpp 2017-01-18 02:29:37 +0000 |
386 | +++ tests/mir_test/display_config_matchers.cpp 2017-01-25 23:20:39 +0000 |
387 | @@ -33,7 +33,7 @@ |
388 | |
389 | size_t find_mode_index(MirOutput const* output, MirOutputMode const* mode) |
390 | { |
391 | - for (int i = 0; i < mir_output_get_num_modes(output); ++i) |
392 | + for (size_t i = 0; i < mir_output_get_num_modes(output); ++i) |
393 | { |
394 | if (mir_output_get_mode(output, i) == mode) |
395 | { |
396 | @@ -49,7 +49,7 @@ |
397 | TestDisplayConfiguration(mp::DisplayConfiguration const& protobuf_config) |
398 | { |
399 | /* Outputs */ |
400 | - for (int i = 0; i < protobuf_config.display_output_size(); i++) |
401 | + for (size_t i = 0; i < static_cast<size_t>(protobuf_config.display_output_size()); i++) |
402 | { |
403 | auto const& protobuf_output = protobuf_config.display_output(i); |
404 | mg::DisplayConfigurationOutput display_output |
405 | @@ -80,7 +80,7 @@ |
406 | |
407 | /* Modes */ |
408 | std::vector<mg::DisplayConfigurationMode> modes; |
409 | - for (int n = 0; n < protobuf_output.mode_size(); n++) |
410 | + for (size_t n = 0; n < static_cast<size_t>(protobuf_output.mode_size()); n++) |
411 | { |
412 | auto const& protobuf_mode = protobuf_output.mode(n); |
413 | modes.push_back( |
414 | @@ -94,7 +94,7 @@ |
415 | |
416 | /* Pixel formats */ |
417 | std::vector<MirPixelFormat> pixel_formats; |
418 | - for (int n = 0; n < protobuf_output.pixel_format_size(); n++) |
419 | + for (size_t n = 0; n < static_cast<size_t>(protobuf_output.pixel_format_size()); n++) |
420 | { |
421 | pixel_formats.push_back( |
422 | static_cast<MirPixelFormat>(protobuf_output.pixel_format(n))); |
423 | @@ -166,7 +166,7 @@ |
424 | TestDisplayConfiguration(MirDisplayConfig const* config) |
425 | { |
426 | /* Outputs */ |
427 | - for (int i = 0; i < mir_display_config_get_num_outputs(config); i++) |
428 | + for (size_t i = 0; i < mir_display_config_get_num_outputs(config); i++) |
429 | { |
430 | auto const client_output = mir_display_config_get_output(config, i); |
431 | mg::DisplayConfigurationOutput display_output |
432 | @@ -197,7 +197,7 @@ |
433 | |
434 | /* Modes */ |
435 | std::vector<mg::DisplayConfigurationMode> modes; |
436 | - for (int n = 0; n < mir_output_get_num_modes(client_output); n++) |
437 | + for (size_t n = 0; n < mir_output_get_num_modes(client_output); n++) |
438 | { |
439 | auto const client_mode = mir_output_get_mode(client_output, n); |
440 | modes.push_back( |
441 | @@ -212,7 +212,7 @@ |
442 | |
443 | /* Pixel formats */ |
444 | std::vector<MirPixelFormat> pixel_formats; |
445 | - for (int n = 0; n < mir_output_get_num_pixel_formats(client_output); n++) |
446 | + for (size_t n = 0; n < mir_output_get_num_pixel_formats(client_output); n++) |
447 | { |
448 | pixel_formats.push_back(mir_output_get_pixel_format(client_output, n)); |
449 | } |
size_t's primary and traditional purpose is to represent a number of bytes. For other purposes that are just an integer number, int or unsigned types are more appropriate.
On that note, mir_output_ get_{current, preferred} _mode_index need to be changed to return int, since they are allowed and expected to sometimes return -1.