debug: don't crash if an object is NULL in wp_*_object() and point it out in the log

by using G_TYPE_NONE (== 1), we can pass this in the log handler
to point out the fact that we expected something but it's null

As a bonus, a null object always gets printed in red because that's
the first color in object_colors
This commit is contained in:
George Kiagiadakis
2020-05-20 18:27:09 +03:00
parent a54ff34863
commit b807b666a0
2 changed files with 14 additions and 14 deletions

View File

@@ -54,17 +54,17 @@ void wp_log_structured_standard (const gchar *log_domain,
wp_log (WP_LOG_LEVEL_TRACE, 0, NULL, __VA_ARGS__)
#define wp_critical_object(object, ...) \
wp_log (G_LOG_LEVEL_CRITICAL, G_TYPE_FROM_INSTANCE (object), object, __VA_ARGS__)
wp_log (G_LOG_LEVEL_CRITICAL, (object) ? G_TYPE_FROM_INSTANCE (object) : G_TYPE_NONE, object, __VA_ARGS__)
#define wp_warning_object(object, ...) \
wp_log (G_LOG_LEVEL_WARNING, G_TYPE_FROM_INSTANCE (object), object, __VA_ARGS__)
wp_log (G_LOG_LEVEL_WARNING, (object) ? G_TYPE_FROM_INSTANCE (object) : G_TYPE_NONE, object, __VA_ARGS__)
#define wp_message_object(object, ...) \
wp_log (G_LOG_LEVEL_MESSAGE, G_TYPE_FROM_INSTANCE (object), object, __VA_ARGS__)
wp_log (G_LOG_LEVEL_MESSAGE, (object) ? G_TYPE_FROM_INSTANCE (object) : G_TYPE_NONE, object, __VA_ARGS__)
#define wp_info_object(object, ...) \
wp_log (G_LOG_LEVEL_INFO, G_TYPE_FROM_INSTANCE (object), object, __VA_ARGS__)
wp_log (G_LOG_LEVEL_INFO, (object) ? G_TYPE_FROM_INSTANCE (object) : G_TYPE_NONE, object, __VA_ARGS__)
#define wp_debug_object(object, ...) \
wp_log (G_LOG_LEVEL_DEBUG, G_TYPE_FROM_INSTANCE (object), object, __VA_ARGS__)
wp_log (G_LOG_LEVEL_DEBUG, (object) ? G_TYPE_FROM_INSTANCE (object) : G_TYPE_NONE, object, __VA_ARGS__)
#define wp_trace_object(object, ...) \
wp_log (WP_LOG_LEVEL_TRACE, G_TYPE_FROM_INSTANCE (object), object, __VA_ARGS__)
wp_log (WP_LOG_LEVEL_TRACE, (object) ? G_TYPE_FROM_INSTANCE (object) : G_TYPE_NONE, object, __VA_ARGS__)
#define wp_critical_boxed(type, object, ...) \
wp_log (G_LOG_LEVEL_CRITICAL, type, object, __VA_ARGS__)