Skip to content

Commit f81e306

Browse files
committed
refactor: Use per-parameter nullability annotations.
This is less error-prone.
1 parent 6794447 commit f81e306

File tree

128 files changed

+2372
-4718
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

128 files changed

+2372
-4718
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ jobs:
7272
build-windows-msvc:
7373
strategy:
7474
matrix:
75-
version: [2019, 2022]
75+
version: [2022, 2025]
7676
runs-on: windows-${{ matrix.version }}
7777
env:
7878
VCPKG_ROOT: "C:/vcpkg"

other/event_tooling/generate_event_c.cpp

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -216,17 +216,6 @@ void generate_event_impl(const std::string& event_name, const std::vector<EventT
216216
// gen setters and getters
217217
for (const auto& t : event_types) {
218218
// setter
219-
std::visit(
220-
overloaded{
221-
[&](const EventTypeTrivial& t) {
222-
f << "non_null()\n";
223-
},
224-
[&](const EventTypeByteRange& t) {
225-
f << "non_null(1) nullable(2)\n";
226-
}
227-
},
228-
t
229-
);
230219
f << "static " << (t.index() == 0 ? "void" : "bool") << " tox_event_" << event_name_l << "_set_";
231220
std::visit(
232221
overloaded{
@@ -239,15 +228,14 @@ void generate_event_impl(const std::string& event_name, const std::vector<EventT
239228
},
240229
t
241230
);
242-
f << "(Tox_Event_" << event_name << " *" << event_name_l << ",\n";
243-
f << " ";
231+
f << "(non_null() Tox_Event_" << event_name << " *" << event_name_l << ",";
244232
std::visit(
245233
overloaded{
246234
[&](const EventTypeTrivial& t) {
247-
f << t.type << " " << t.name << ")\n";
235+
f << " " << t.type << " " << t.name << ")\n";
248236
},
249237
[&](const EventTypeByteRange& t) {
250-
f << "const uint8_t *" << t.name_data << ", uint32_t " << t.name_length << ")\n";
238+
f << "\n nullable() const uint8_t *" << t.name_data << ", uint32_t " << t.name_length << ")\n";
251239
}
252240
},
253241
t
@@ -259,7 +247,7 @@ void generate_event_impl(const std::string& event_name, const std::vector<EventT
259247
f << " " << event_name_l << "->" << t.name << " = " << t.name << ";\n";
260248
},
261249
[&](const EventTypeByteRange& t) {
262-
f << "\n if (" << event_name_l << "->" << t.name_data << " != nullptr) {\n";
250+
f << " if (" << event_name_l << "->" << t.name_data << " != nullptr) {\n";
263251
f << " free(" << event_name_l << "->" << t.name_data << ");\n";
264252
f << " " << event_name_l << "->" << t.name_data << " = nullptr;\n";
265253
f << " " << event_name_l << "->" << t.name_length << " = 0;\n";
@@ -308,16 +296,14 @@ void generate_event_impl(const std::string& event_name, const std::vector<EventT
308296

309297

310298
// gen contruct
311-
f << "non_null()\n";
312-
f << "static void tox_event_" << event_name_l << "_construct(Tox_Event_" << event_name << " *" << event_name_l << ")\n{\n";
299+
f << "static void tox_event_" << event_name_l << "_construct(non_null() Tox_Event_" << event_name << " *" << event_name_l << ")\n{\n";
313300
// TODO: initialize all members properly
314301
// TODO: check if _NONE is universal
315302
// str_toupper(
316303
f << " *" << event_name_l << " = (Tox_Event_" << event_name << ") {\n 0\n };\n}\n";
317304

318305
// gen destruct
319-
f << "non_null()\n";
320-
f << "static void tox_event_" << event_name_l << "_destruct(Tox_Event_" << event_name << " *" << event_name_l << ", const Memory *mem)\n{\n";
306+
f << "static void tox_event_" << event_name_l << "_destruct(non_null() Tox_Event_" << event_name << " *" << event_name_l << ", non_null() const Memory *mem)\n{\n";
321307
size_t data_count = 0;
322308
for (const auto& t : event_types) {
323309
std::visit(
@@ -375,9 +361,7 @@ void generate_event_impl(const std::string& event_name, const std::vector<EventT
375361
f << ";\n}\n\n";
376362

377363
// unpack
378-
f << "non_null()\n";
379-
f << "static bool tox_event_" << event_name_l << "_unpack_into(\n";
380-
f << " Tox_Event_" << event_name << " *event, Bin_Unpack *bu)\n{\n";
364+
f << "static bool tox_event_" << event_name_l << "_unpack_into(non_null() Tox_Event_" << event_name << " *event, non_null() Bin_Unpack *bu)\n{\n";
381365
f << " assert(event != nullptr);\n";
382366
if (event_types.size() > 1) {
383367
f << " if (!bin_unpack_array_fixed(bu, " << event_types.size() << ", nullptr)) {\n return false;\n }\n\n";
@@ -437,8 +421,7 @@ void generate_event_impl(const std::string& event_name, const std::vector<EventT
437421
f << " mem_delete(mem, " << event_name_l << ");\n}\n\n";
438422

439423
// add
440-
f << "non_null()\n";
441-
f << "static Tox_Event_" << event_name << " *tox_events_add_" << event_name_l << "(Tox_Events *events, const Memory *mem)\n{\n";
424+
f << "static Tox_Event_" << event_name << " *tox_events_add_" << event_name_l << "(non_null() Tox_Events *events, non_null() const Memory *mem)\n{\n";
442425
f << " Tox_Event_" << event_name << " *const " << event_name_l << " = tox_event_" << event_name_l << "_new(mem);\n\n";
443426
f << " if (" << event_name_l << " == nullptr) {\n";
444427
f << " return nullptr;\n }\n\n";
@@ -461,8 +444,7 @@ void generate_event_impl(const std::string& event_name, const std::vector<EventT
461444
f << " return tox_event_" << event_name_l << "_unpack_into(*event, bu);\n}\n\n";
462445

463446
// alloc
464-
f << "non_null()\n";
465-
f << "static Tox_Event_" << event_name << " *tox_event_" << event_name_l << "_alloc(void *user_data)\n{\n";
447+
f << "static Tox_Event_" << event_name << " *tox_event_" << event_name_l << "_alloc(non_null() void *user_data)\n{\n";
466448
f << " Tox_Events_State *state = tox_events_alloc(user_data);\n";
467449
f << " assert(state != nullptr);\n\n";
468450
f << " if (state->events == nullptr) {\n return nullptr;\n }\n\n";

toxav/toxav_hacks.h

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,16 @@
1414
typedef struct ToxAVCall ToxAVCall;
1515
#endif /* TOXAV_CALL_DEFINED */
1616

17-
non_null()
18-
ToxAVCall *call_get(ToxAV *av, uint32_t friend_number);
17+
ToxAVCall *call_get(non_null() ToxAV *av, uint32_t friend_number);
1918

20-
non_null()
21-
RTPSession *rtp_session_get(ToxAVCall *call, int payload_type);
19+
RTPSession *rtp_session_get(non_null() ToxAVCall *call, int payload_type);
2220

23-
non_null()
24-
MSISession *tox_av_msi_get(const ToxAV *av);
21+
MSISession *tox_av_msi_get(non_null() const ToxAV *av);
2522

26-
non_null()
27-
BWController *bwc_controller_get(const ToxAVCall *call);
23+
BWController *bwc_controller_get(non_null() const ToxAVCall *call);
2824

29-
non_null()
30-
Mono_Time *toxav_get_av_mono_time(const ToxAV *av);
25+
Mono_Time *toxav_get_av_mono_time(non_null() const ToxAV *av);
3126

32-
non_null()
33-
const Logger *toxav_get_logger(const ToxAV *av);
27+
const Logger *toxav_get_logger(non_null() const ToxAV *av);
3428

3529
#endif /* C_TOXCORE_TOXAV_HACKS_H */

toxav/video.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ VCSession *vc_new(const Logger *log, const Mono_Time *mono_time, ToxAV *av, uint
234234
}
235235

236236
/*
237-
* VPX_CTRL_USE_TYPE(VP8E_SET_NOISE_SENSITIVITY, unsigned int)
237+
* VPX_CTRL_USE_TYPE(VP8E_SET_NOISE_SENSITIVITY, unsigned int)
238238
* control function to set noise sensitivity
239239
* 0: off, 1: OnYOnly, 2: OnYUV, 3: OnYUVAggressive, 4: Adaptive
240240
*/

0 commit comments

Comments
 (0)