Merge pull request #1690 from nulltoken/fix/warnings Fix Win32/64 compilation warnings & memory leak
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
diff --git a/src/diff_tform.c b/src/diff_tform.c
index 8c4e96e..b137bd3 100644
--- a/src/diff_tform.c
+++ b/src/diff_tform.c
@@ -900,7 +900,7 @@ find_best_matches:
}
/* otherwise, if we just overwrote a source, update mapping */
else if (j > i && match_srcs[i].similarity > 0) {
- match_tgts[match_srcs[i].idx].idx = j;
+ match_tgts[match_srcs[i].idx].idx = (uint32_t)j;
}
num_updates++;
diff --git a/src/thread-utils.h b/src/thread-utils.h
index 8314818..f19a2ba 100644
--- a/src/thread-utils.h
+++ b/src/thread-utils.h
@@ -104,7 +104,7 @@ GIT_INLINE(void *) git___compare_and_swap(
{
volatile void *foundval;
#if defined(GIT_WIN32)
- foundval = InterlockedCompareExchangePointer(ptr, newval, oldval);
+ foundval = InterlockedCompareExchangePointer((volatile PVOID *)ptr, newval, oldval);
#elif defined(__GNUC__)
foundval = __sync_val_compare_and_swap(ptr, oldval, newval);
#else
diff --git a/src/win32/findfile.c b/src/win32/findfile.c
index 5dd3de1..9d9051b 100644
--- a/src/win32/findfile.c
+++ b/src/win32/findfile.c
@@ -156,7 +156,7 @@ static int win32_find_git_in_registry(
}
static int win32_find_existing_dirs(
- git_buf *out, const wchar_t *tmpl[], char *temp[])
+ git_buf *out, const wchar_t *tmpl[])
{
struct git_win32__path path16;
git_buf buf = GIT_BUF_INIT;
@@ -209,7 +209,6 @@ int git_win32__find_system_dirs(git_buf *out)
int git_win32__find_global_dirs(git_buf *out)
{
- char *temp[3];
static const wchar_t *global_tmpls[4] = {
L"%HOME%\\",
L"%HOMEDRIVE%%HOMEPATH%\\",
@@ -217,12 +216,11 @@ int git_win32__find_global_dirs(git_buf *out)
NULL,
};
- return win32_find_existing_dirs(out, global_tmpls, temp);
+ return win32_find_existing_dirs(out, global_tmpls);
}
int git_win32__find_xdg_dirs(git_buf *out)
{
- char *temp[6];
static const wchar_t *global_tmpls[7] = {
L"%XDG_CONFIG_HOME%\\git",
L"%APPDATA%\\git",
@@ -233,5 +231,5 @@ int git_win32__find_xdg_dirs(git_buf *out)
NULL,
};
- return win32_find_existing_dirs(out, global_tmpls, temp);
+ return win32_find_existing_dirs(out, global_tmpls);
}
diff --git a/tests-clar/checkout/index.c b/tests-clar/checkout/index.c
index 9d8b321..982bf9e 100644
--- a/tests-clar/checkout/index.c
+++ b/tests-clar/checkout/index.c
@@ -587,6 +587,8 @@ void test_checkout_index__target_directory_from_bare(void)
cl_git_pass(git_futils_rmdir_r(
"alternative", NULL, GIT_RMDIR_REMOVE_FILES));
+
+ git_object_free(head);
}
void test_checkout_index__can_get_repo_from_index(void)
diff --git a/tests-clar/clar/sandbox.h b/tests-clar/clar/sandbox.h
index 1ca6fca..5622bfa 100644
--- a/tests-clar/clar/sandbox.h
+++ b/tests-clar/clar/sandbox.h
@@ -45,7 +45,7 @@ find_tmp_path(char *buffer, size_t length)
#else
DWORD env_len;
- if ((env_len = GetEnvironmentVariable("CLAR_TMP", buffer, length)) > 0 &&
+ if ((env_len = GetEnvironmentVariable("CLAR_TMP", buffer, (DWORD)length)) > 0 &&
env_len < length)
return 0;
diff --git a/tests-clar/diff/rename.c b/tests-clar/diff/rename.c
index 2b1873b..9efd928 100644
--- a/tests-clar/diff/rename.c
+++ b/tests-clar/diff/rename.c
@@ -516,7 +516,7 @@ void test_diff_rename__working_directory_changes(void)
cl_git_pass(git_oid_fromstr(&id, blobsha));
cl_git_pass(git_blob_lookup(&blob, g_repo, &id));
cl_git_pass(git_buf_set(
- &content, git_blob_rawcontent(blob), git_blob_rawsize(blob)));
+ &content, git_blob_rawcontent(blob), (size_t)git_blob_rawsize(blob)));
cl_git_rewritefile("renames/songof7cities.txt", content.ptr);
git_blob_free(blob);
diff --git a/tests-clar/merge/trees/automerge.c b/tests-clar/merge/trees/automerge.c
index 04a7bef..746ce50 100644
--- a/tests-clar/merge/trees/automerge.c
+++ b/tests-clar/merge/trees/automerge.c
@@ -122,7 +122,7 @@ void test_merge_trees_automerge__automerge(void)
cl_assert(entry->file_size == strlen(AUTOMERGEABLE_MERGED_FILE));
cl_git_pass(git_object_lookup((git_object **)&blob, repo, &entry->oid, GIT_OBJ_BLOB));
- cl_assert(memcmp(git_blob_rawcontent(blob), AUTOMERGEABLE_MERGED_FILE, entry->file_size) == 0);
+ cl_assert(memcmp(git_blob_rawcontent(blob), AUTOMERGEABLE_MERGED_FILE, (size_t)entry->file_size) == 0);
git_index_free(index);
git_blob_free(blob);