Skip to content

Add separate definitions of g_assert_[non]null() for C++

Michael Catanzaro requested to merge mcatanzaro/g_assert_cpp into master

In C++ we can use nullptr to ensure g_assert_[non]null() is only called with pointers. This will introduce build failures in tests that would have previously compiled, but only in C++, and only for code that misused these macros. Code using the macros properly will be fine.

This change caught a couple bugs in WebKit's API tests, where I had accidentally used these functions improperly. E.g. this is now a build failure in C++:

g_assert_null(webkit_context_menu_get_n_items(menu)); /* Oops! */

Either I wanted to use cmpuint there, or I wanted to use webkit_context_menu_get_items() to receive a GList* instead.

Another example that will no longer build in C++:

g_assert_null(0); /* Contrived, but 0 is not a pointer! */

Merge request reports