mirror of
https://github.com/OpenVPN/openvpn.git
synced 2024-09-20 12:02:28 +02:00
polarssl: optimize polar_ok() for non-errors
Adding polar_ok() was a good plan for improving error reporting, but also added two function calls (one to polar_log_func_line() and one to polar_log_err()) for each function call wrapped with polar_ok(). Especially in the critical path, this is a waste of time. To avoid this overhead, add a simple static inline wrapper to reduce it to a single branch. v2 - use a static inline wrapper to prevent evaluating 'errval' twice in the macro. Signed-off-by: Steffan Karger <steffan.karger@fox-it.com> Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <1452158116-17363-1-git-send-email-steffan.karger@fox-it.com> URL: http://article.gmane.org/gmane.network.openvpn.devel/10949 Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
parent
aa416be950
commit
3a39bf7dfe
@ -115,6 +115,15 @@ bool polar_log_err(unsigned int flags, int errval, const char *prefix);
|
||||
bool polar_log_func_line(unsigned int flags, int errval, const char *func,
|
||||
int line);
|
||||
|
||||
/** Wraps polar_log_func_line() to prevent function calls for non-errors */
|
||||
static inline bool polar_log_func_line_lite(unsigned int flags, int errval,
|
||||
const char *func, int line) {
|
||||
if (errval) {
|
||||
return polar_log_func_line (flags, errval, func, line);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check errval and log on error.
|
||||
*
|
||||
@ -128,7 +137,7 @@ bool polar_log_func_line(unsigned int flags, int errval, const char *func,
|
||||
* @returns true if no errors are detected, false otherwise.
|
||||
*/
|
||||
#define polar_ok(errval) \
|
||||
polar_log_func_line(D_CRYPT_ERRORS, errval, __func__, __LINE__)
|
||||
polar_log_func_line_lite(D_CRYPT_ERRORS, errval, __func__, __LINE__)
|
||||
|
||||
|
||||
#endif /* CRYPTO_POLARSSL_H_ */
|
||||
|
Loading…
Reference in New Issue
Block a user