Il 03/12/2013 21:33, Igor Mammedov ha scritto: > I'm sorry for hijacking thread, but that actually an issue that started an > original discussion. > Where void returning QOM API functions are used with NULL, without any chance > to detect that error happened. So abusing NULL errp in this functions > might lead to hard to find runtime errors. > I think Eric's suggestion was to enforce passing non NULL errp and let caller > to deal with error gracefully so that above mentioned misuse was impossible. > Why is ignoring errors from "void foo(...)" like API considered acceptable?
See http://permalink.gmane.org/gmane.comp.emulators.qemu/243779 > * Peter's alternative > + self-documenting > + consistent > + predictable I'll add another small advantage which is fewer SLOC. > * make Error* mandatory for all void functions > + consistent > + almost predictable (because in C you can ignore return values) > - not necessarily does the right thing (e.g. cleanup functions) > - requires manual effort to abide to the policy Better wording of the last: a missing &error_abort is easier to spot than a missing assert_no_error(errp). Paolo