diff options
author | Yann Ylavic <ylavic@apache.org> | 2018-06-13 09:44:11 +0000 |
---|---|---|
committer | Yann Ylavic <ylavic@apache.org> | 2018-06-13 09:44:11 +0000 |
commit | 821e86ce1911d42bae84502a2330bdf72798318e (patch) | |
tree | 9822f2c88ac5b16409f280b21b185fe14a2eb8b6 /crypto | |
parent | 53c9b2db19544c9e40c986d94e664442a033cae6 (diff) | |
download | apr-821e86ce1911d42bae84502a2330bdf72798318e.tar.gz |
apr_crypto: follow up to r1833359: reuse crypto_lib_free() code.
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@1833451 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'crypto')
-rw-r--r-- | crypto/apr_crypto.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/crypto/apr_crypto.c b/crypto/apr_crypto.c index 6170825b5..ac8c8d013 100644 --- a/crypto/apr_crypto.c +++ b/crypto/apr_crypto.c @@ -340,14 +340,21 @@ static struct crypto_lib *spare_lib_pop(void) return lib; } -static apr_status_t crypto_lib_cleanup(void *arg) +static apr_status_t crypto_lib_free(struct crypto_lib *lib) { - struct crypto_lib *lib = arg; + apr_status_t rv; apr_hash_set(active_libs, lib->name, APR_HASH_KEY_STRING, NULL); - lib->term(); + rv = lib->term(); spare_lib_push(lib); + return rv; +} + +static apr_status_t crypto_lib_cleanup(void *arg) +{ + crypto_lib_free(arg); + return APR_SUCCESS; } @@ -502,10 +509,8 @@ static apr_status_t crypto_lib_term(const char *name) #endif ; if (rv == APR_SUCCESS) { - apr_hash_set(active_libs, lib->name, APR_HASH_KEY_STRING, NULL); apr_pool_cleanup_kill(lib->pool, lib, crypto_lib_cleanup); - rv = lib->term(); - spare_lib_push(lib); + rv = crypto_lib_free(lib); } return rv; } |