summaryrefslogtreecommitdiff
path: root/src/hash
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2019-04-04 18:45:30 +0100
committerEdward Thomson <ethomson@edwardthomson.com>2019-04-04 18:45:30 +0100
commite5aecaf62a6a6d88bd082904608952675aec6802 (patch)
treeda18082e372fbd7813cfaee3b4cef82ad9bf2abb /src/hash
parent9aa049d4c1578cfd73ce66801fe2575632296060 (diff)
downloadlibgit2-e5aecaf62a6a6d88bd082904608952675aec6802.tar.gz
sha1: don't inline `git_hash_global_init` for win32ethomson/win32_hash
Users of the Win32 hash cannot be inlined, as it uses a static struct. Don't inline it, but continue to declare the function in the header.
Diffstat (limited to 'src/hash')
-rw-r--r--src/hash/hash_win32.c15
-rw-r--r--src/hash/hash_win32.h15
2 files changed, 16 insertions, 14 deletions
diff --git a/src/hash/hash_win32.c b/src/hash/hash_win32.c
index 792298f39..4b6830358 100644
--- a/src/hash/hash_win32.c
+++ b/src/hash/hash_win32.c
@@ -109,6 +109,21 @@ static void git_hash_global_shutdown(void)
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 */
GIT_INLINE(int) hash_ctx_cryptoapi_init(git_hash_ctx *ctx)
diff --git a/src/hash/hash_win32.h b/src/hash/hash_win32.h
index 6cddcaa72..ca448c241 100644
--- a/src/hash/hash_win32.h
+++ b/src/hash/hash_win32.h
@@ -138,19 +138,6 @@ struct git_hash_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;
-}
+extern int git_hash_global_init(void);
#endif