We don't have caller that pass only one pointer. So we can just do
*current = pm->current;
*total = pm->total;
implicitly requiring both pointers to be non NULL.
Is it so performance critical that we need to skip these safety checks?
IMHO we can keep it as it is.
Not performance. It's just less code. You propose more complex interface
(pointers may be valid pointers or NULL), implemented by more complex
code (extra if blocks). And there no users for this. So, I don't see any
reason for extra logic and code lines.
What kind of safety you want? All current callers pass non-zero
pointers, it's obvious. If someone will create new call, he should look
first at function itself, not blindly pass NULL pointers. And if not, he
will get clean crash on zero pointer dereference.
Ok, makes sense. Will remove the ifs.
Thank you,
Emanuele