Fix trace segfault for non-daemon functions (RHBZ#682756).
authorRichard W.M. Jones <rjones@redhat.com>
Mon, 7 Mar 2011 15:55:56 +0000 (15:55 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Mon, 7 Mar 2011 16:42:45 +0000 (16:42 +0000)
commit7c721e4fd674c409b3eee60fe237d480afa1c5e2
treeacdcd920eb77e75da7a71018ae3f40838061bbed
parent2a9e345090ceeae5bdab68407bf1133c040c4f45
Fix trace segfault for non-daemon functions (RHBZ#682756).

Previously we expanded the code for 'trace_return' unconditionally for
all non-daemon functions.  However this code was not prepared to
handle all error conditions, and in fact would segfault if it tried to
print RStringList or RHashtable where r == NULL.

We need to make the code conditional on the return value, calling
either 'trace_return' or 'trace_return_error' as appropriate.

Note the difficult case for RConstOptString which returns NULL in
non-error cases.
generator/generator_c.ml