On Tue, Mar 08, 2016 at 01:17:03PM +0100, Paolo Bonzini wrote: > > > On 08/03/2016 09:12, Markus Armbruster wrote: > > I'm afraid this isn't a good idea. It relies on the non-local argument > > that nobody will ever put a key longer than 255 into a qdict that gets > > dumped. That may even be the case, but you need to *prove* it, not just > > assert it. The weakest acceptable proof might be assertions in every > > place that put keys into a dict that might get dumped. I suspect that's > > practical and maintainable only if there's a single place that does it. > > > > If this was a good idea, I'd recommend to avoid the awkward macro: > > > > char key[256]; > > int i; > > > > assert(strlen(entry->key) + 1 <= ARRAY_SIZE(key)); > > > > There are several other ways to limit the stack usage: > > > > 1. Move the array from stack to heap. Fine unless it's on a hot path. > > As far as I can tell, this dumping business is for HMP and qemu-io, > > i.e. not hot. > > I think this is the best. You can just g_strdup, modify in place, print > and free.
g_strdup() will bring one more loop? One to copy the strings, one for replacing "-" to " ". Though I will first need to replace g_malloc0() with g_malloc(), which seems more suitable here. :) Thanks! Peter