Each hash implementation should define `git_hash_global_init`

This means the forward declaration isn't necessary.  The forward
declaration can cause compilation errors as it conflicts with the
`GIT_INLINE` declaration (the signatures are different).
parent 8e4927a4
...@@ -31,8 +31,6 @@ void git_hash_ctx_cleanup(git_hash_ctx *ctx); ...@@ -31,8 +31,6 @@ void git_hash_ctx_cleanup(git_hash_ctx *ctx);
# include "hash/hash_generic.h" # include "hash/hash_generic.h"
#endif #endif
int git_hash_global_init(void);
typedef struct { typedef struct {
void *data; void *data;
size_t len; size_t len;
......
...@@ -109,21 +109,6 @@ static void git_hash_global_shutdown(void) ...@@ -109,21 +109,6 @@ static void git_hash_global_shutdown(void)
hash_cryptoapi_prov_shutdown(); hash_cryptoapi_prov_shutdown();
} }
int git_hash_global_init(void)
{
int error = 0;
if (hash_prov.type != INVALID)
return 0;
if ((error = hash_cng_prov_init()) < 0)
error = hash_cryptoapi_prov_init();
git__on_shutdown(git_hash_global_shutdown);
return error;
}
/* CryptoAPI: available in Windows XP and newer */ /* CryptoAPI: available in Windows XP and newer */
GIT_INLINE(int) hash_ctx_cryptoapi_init(git_hash_ctx *ctx) GIT_INLINE(int) hash_ctx_cryptoapi_init(git_hash_ctx *ctx)
......
...@@ -138,4 +138,19 @@ struct git_hash_ctx { ...@@ -138,4 +138,19 @@ struct git_hash_ctx {
} ctx; } ctx;
}; };
GIT_INLINE(int) git_hash_global_init(void)
{
int error = 0;
if (hash_prov.type != INVALID)
return 0;
if ((error = hash_cng_prov_init()) < 0)
error = hash_cryptoapi_prov_init();
git__on_shutdown(git_hash_global_shutdown);
return error;
}
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment