@@ -168,7 +168,7 @@ std::string zero_initializer_for_type(const std::string& type) {
168168 }
169169}
170170
171- void generate_event_impl (const std::string& event_name, const std::vector<EventType>& event_types) {
171+ void generate_event_impl (const std::string& event_name, const std::vector<EventType>& event_types, bool is_public = true ) {
172172 const std::string event_name_l = str_tolower (event_name);
173173 const std::string event_name_u = str_toupper (event_name);
174174 std::string file_name = output_folder + " /" + event_name_l + " .c" ;
@@ -543,7 +543,7 @@ void generate_event_impl(const std::string& event_name, const std::vector<EventT
543543 f << " mem_delete(mem, " << event_name_l << " );\n }\n\n " ;
544544
545545 // add
546- f << " static Tox_Event_" << event_name << " *tox_events_add_" << event_name_l << " (Tox_Events *_Nonnull events, const Memory *_Nonnull mem)\n {\n " ;
546+ f << " static Tox_Event_" << event_name << " *_Nullable tox_events_add_" << event_name_l << " (Tox_Events *_Nonnull events, const Memory *_Nonnull mem)\n {\n " ;
547547 f << " Tox_Event_" << event_name << " *const " << event_name_l << " = tox_event_" << event_name_l << " _new(mem);\n\n " ;
548548 f << " if (" << event_name_l << " == nullptr) {\n " ;
549549 f << " return nullptr;\n }\n\n " ;
@@ -552,8 +552,7 @@ void generate_event_impl(const std::string& event_name, const std::vector<EventT
552552 f << " event.data." << event_name_l << " = " << event_name_l << " ;\n\n " ;
553553 f << " if (!tox_events_add(events, &event)) {\n " ;
554554 f << " tox_event_" << event_name_l << " _free(" << event_name_l << " , mem);\n " ;
555- f << " return nullptr;\n " ;
556- f << " }\n " ;
555+ f << " return nullptr;\n }\n " ;
557556 f << " return " << event_name_l << " ;\n }\n\n " ;
558557
559558 // unpack
@@ -566,7 +565,7 @@ void generate_event_impl(const std::string& event_name, const std::vector<EventT
566565 f << " return tox_event_" << event_name_l << " _unpack_into(*event, bu);\n }\n\n " ;
567566
568567 // alloc
569- f << " static Tox_Event_" << event_name << " *tox_event_" << event_name_l << " _alloc(Tox_Events_State *_Nonnull state)\n {\n " ;
568+ f << " static Tox_Event_" << event_name << " *_Nullable tox_event_" << event_name_l << " _alloc(Tox_Events_State *_Nonnull state)\n {\n " ;
570569 f << " if (state->events == nullptr) {\n return nullptr;\n }\n\n " ;
571570 f << " Tox_Event_" << event_name << " *" << event_name_l << " = tox_events_add_" << event_name_l << " (state->events, state->mem);\n\n " ;
572571 f << " if (" << event_name_l << " == nullptr) {\n " ;
@@ -583,7 +582,7 @@ void generate_event_impl(const std::string& event_name, const std::vector<EventT
583582
584583)" ;
585584 f << " void tox_events_handle_" << event_name_l << " (\n " ;
586- f << " Tox * tox" ;
585+ f << " Tox " << (is_public ? " *_Nonnull " : " * " ) << " tox" ;
587586
588587 for (const auto & t : event_types) {
589588 f << " ,\n " ;
@@ -593,17 +592,17 @@ void generate_event_impl(const std::string& event_name, const std::vector<EventT
593592 f << (t.cb_type .empty () ? t.type : t.cb_type ) << " " << t.name ;
594593 },
595594 [&](const EventTypeByteRange& t) {
596- f << " const " << t.type_c_arg << " * " << t.name_data << " , " << t.type_length_cb << " " << t.name_length_cb ;
595+ f << " const " << t.type_c_arg << " " << (is_public ? " *_Nullable " : " * " ) << t.name_data << " , " << t.type_length_cb << " " << t.name_length_cb ;
597596 },
598597 [&](const EventTypeByteArray& t) {
599- f << " const uint8_t * " << t.name ;
598+ f << " const uint8_t " << (is_public ? " *_Nonnull " : " * " ) << t.name ;
600599 }
601600 },
602601 t
603602 );
604603 }
605604
606- f << " ,\n void * user_data)\n {\n " ;
605+ f << " ,\n void " << (is_public ? " *_Nullable " : " * " ) << " user_data)\n {\n " ;
607606 f << " Tox_Events_State *state = tox_events_alloc(user_data);\n " ;
608607 f << " Tox_Event_" << event_name << " *" << event_name_l << " = tox_event_" << event_name_l << " _alloc(state);\n\n " ;
609608 f << " if (" << event_name_l << " == nullptr) {\n return;\n }\n\n " ;
@@ -988,11 +987,11 @@ int main(int argc, char** argv) {
988987
989988 if (argc < 2 ) {
990989 for (const auto & [event, event_types] : event_defs) {
991- generate_event_impl (event, event_types);
990+ generate_event_impl (event, event_types, event != " Dht_Nodes_Response " );
992991 }
993992 } else {
994993 if (event_defs.count (argv[1 ])) {
995- generate_event_impl (argv[1 ], event_defs[argv[1 ]]);
994+ generate_event_impl (argv[1 ], event_defs[argv[1 ]], std::string (argv[ 1 ]) != " Dht_Nodes_Response " );
996995 } else {
997996 std::cerr << " error: unknown event " << argv[1 ] << " \n " ;
998997 return 1 ;
0 commit comments