diff options
author | Richard Mudgett <rmudgett@digium.com> | 2017-11-03 16:14:15 -0500 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2017-11-06 11:49:41 -0600 |
commit | 33d02f509045b2c5bc05f26db7f3ef232fc021c2 (patch) | |
tree | 49a3741640c4337b7acf1872a64d1a77c3f40012 /res | |
parent | 0eee42626a689c7425cd21b63144943e6ada033e (diff) |
stasis/app.c: Optimize stasis_app_get_debug_by_name()
* Eliminate RAII_VAR()
* Short circuit application name lookup if global debug enabled.
Change-Id: I5f78b7bd6ca7fd2c3b07cbbe036c6a93b4681123
Diffstat (limited to 'res')
-rw-r--r-- | res/stasis/app.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/res/stasis/app.c b/res/stasis/app.c index e122f34a4..7d88c1b6e 100644 --- a/res/stasis/app.c +++ b/res/stasis/app.c @@ -874,9 +874,21 @@ int stasis_app_get_debug(struct stasis_app *app) int stasis_app_get_debug_by_name(const char *app_name) { - RAII_VAR(struct stasis_app *, app, stasis_app_get_by_name(app_name), ao2_cleanup); + int debug_enabled = 0; - return (app ? app->debug : 0) || global_debug; + if (global_debug) { + debug_enabled = 1; + } else { + struct stasis_app *app = stasis_app_get_by_name(app_name); + + if (app) { + if (app->debug) { + debug_enabled = 1; + } + ao2_ref(app, -1); + } + } + return debug_enabled; } void stasis_app_set_global_debug(int debug) |