diff --git a/app/tests/callback_test.cc b/app/tests/callback_test.cc index f1175f966e..aa7607522d 100644 --- a/app/tests/callback_test.cc +++ b/app/tests/callback_test.cc @@ -338,21 +338,19 @@ TEST_F(CallbackTest, ThreadedCallbackValue1Ordered) { &running); Thread addCallbacksThread( [](void* arg) -> void { - void** callback_entry_to_remove_ptr = static_cast(arg); callback::AddCallback( new callback::CallbackValue1(1, OrderedCallbackValue1)); callback::AddCallback( new callback::CallbackValue1(2, OrderedCallbackValue1)); - // Adds a callback which removes the entry referenced by - // callback_entry_to_remove. - callback::AddCallback(new callback::CallbackValue1( - callback_entry_to_remove_ptr, [](void** callback_entry) -> void { - callback::RemoveCallback(*callback_entry); + // Adds a callback which removes a newly added callback. + callback::AddCallback(new callback::CallbackVoid( + []() -> void { + void* callback_entry = callback::AddCallback( + new callback::CallbackValue1(4, OrderedCallbackValue1)); + callback::AddCallback( + new callback::CallbackValue1(5, OrderedCallbackValue1)); + callback::RemoveCallback(callback_entry); })); - *callback_entry_to_remove_ptr = callback::AddCallback( - new callback::CallbackValue1(4, OrderedCallbackValue1)); - callback::AddCallback( - new callback::CallbackValue1(5, OrderedCallbackValue1)); }, &callback_entry_to_remove); addCallbacksThread.Join();