diff options
author | ylavic <ylavic@13f79535-47bb-0310-9956-ffa450edef68> | 2018-06-13 09:44:11 +0000 |
---|---|---|
committer | ylavic <ylavic@13f79535-47bb-0310-9956-ffa450edef68> | 2018-06-13 09:44:11 +0000 |
commit | 49c05e1f6171c2350d994d9424d9fa605f5b4ff3 (patch) | |
tree | 9822f2c88ac5b16409f280b21b185fe14a2eb8b6 /crypto/apr_crypto.c | |
parent | 4a1da6471a0ea9458c0aa20ddf82eab93dfa4869 (diff) | |
download | libapr-49c05e1f6171c2350d994d9424d9fa605f5b4ff3.tar.gz |
apr_crypto: follow up to r1833359: reuse crypto_lib_free() code.
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@1833451 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'crypto/apr_crypto.c')
-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; } |