summaryrefslogtreecommitdiff
path: root/src/settings.c
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2020-05-13 10:39:33 +0100
committerEdward Thomson <ethomson@edwardthomson.com>2020-10-11 14:43:35 +0100
commit6554b40e42df831d7fc9c623d34b2738227dd8a2 (patch)
tree52b0fdeedbdd39ae8b45d833fdd41a5d6bc32716 /src/settings.c
parent521aa8c1c04c25a57b82e1279a4e91d8a07436aa (diff)
downloadlibgit2-6554b40e42df831d7fc9c623d34b2738227dd8a2.tar.gz
settings: localize global data
Move the settings global data teardown into its own separate function, instead of intermingled with the global state.
Diffstat (limited to 'src/settings.c')
-rw-r--r--src/settings.c32
1 files changed, 22 insertions, 10 deletions
diff --git a/src/settings.c b/src/settings.c
index 69ebcb7ab..0426093ea 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -29,6 +29,28 @@
#include "streams/openssl.h"
#include "streams/mbedtls.h"
+/* Declarations for tuneable settings */
+extern size_t git_mwindow__window_size;
+extern size_t git_mwindow__mapped_limit;
+extern size_t git_mwindow__file_limit;
+extern size_t git_indexer__max_objects;
+extern bool git_disable_pack_keep_file_checks;
+
+char *git__user_agent;
+char *git__ssl_ciphers;
+
+static void git_settings_global_shutdown(void)
+{
+ git__free(git__user_agent);
+ git__free(git__ssl_ciphers);
+}
+
+int git_settings_global_init(void)
+{
+ git__on_shutdown(git_settings_global_shutdown);
+ return 0;
+}
+
int git_libgit2_version(int *major, int *minor, int *rev)
{
*major = LIBGIT2_VER_MAJOR;
@@ -56,13 +78,6 @@ int git_libgit2_features(void)
;
}
-/* Declarations for tuneable settings */
-extern size_t git_mwindow__window_size;
-extern size_t git_mwindow__mapped_limit;
-extern size_t git_mwindow__file_limit;
-extern size_t git_indexer__max_objects;
-extern bool git_disable_pack_keep_file_checks;
-
static int config_level_to_sysdir(int config_level)
{
int val = -1;
@@ -88,9 +103,6 @@ static int config_level_to_sysdir(int config_level)
return val;
}
-extern char *git__user_agent;
-extern char *git__ssl_ciphers;
-
const char *git_libgit2__user_agent(void)
{
return git__user_agent;