On 30-1-2013 9:36, Jasper van de Gronde wrote:
On 29-01-13 23:47, Jon Cruz wrote:
On Jan 30, 2013, at 9:19 AM, Johan Engelen wrote: ...
Alright, this method should not do a NULL check for performance reasons (I assume). But, shouldn't we use a reference in this case then? To signal clearly that the method does not accept NULL pointers without crashing: ...
I'm trying to reduce the number of crashes due to simple NULL pointer crashes. I find such bugs satisfying to fix because it takes really only 1 minute to locate the bug and 1 minute to fix and commit it, but........
Yes, that does seem reasonable.
However... I would wonder about performance. A more normal approach would not be to use a combination in/out variable, but instead take in double and return double. No pointers or references required.
Doing otherwise might be a premature optimization and sometimes is actually counter-productive. It is quite possible that writing code more focused on clarity might allow the compiler to optimize it better. Hard to know without real-world testing with the whole program end-to-end.
Indeed, a double is hardly more work to pass around than a pointer, and compilers often have problems with optimizing pointers/references. You could try timing it using pass-by-reference and pass-by-value, and possibly add "inline" to hint to the compiler that it might be a good idea to inline this particular function.
See r12077. Don't even know how to properly test whether I broke anything, so... :-)
In any case, excellent work on cleaning up this kind of stuff.
I hope everybody takes note and tries to improve their commits!
Cheers, Johan