Stuart Henderson: > Basically it seems that g_debug callers expect to be able to use NULL > srrings and it would be huge whack-a-mole to clean them up. I wonder > if it might be better to do something to catch these in g_debug() and > avoid passing the NULL to vfprintf.
How would you do this? You would have to process the format string to see which arguments are pointers and then replace corresponding NULL arguments. The glib code passes the variadic arguments straight through to v*printf(). Here's how that looks: g_debug() macro expands to -> g_log() calls -> g_logv() calls -> g_strdup_vprintf() calls -> vasprintf() or -> _g_vsnprintf() macro expands to -> vsnprintf() or -> g_log_structured() calls -> g_strdup_vprintf() calls -> vasprintf() or -> _g_vsnprintf() macro expands to -> vsnprintf() -- Christian "naddy" Weisgerber na...@mips.inka.de