Commit c61300eda94eedb53f072fedbf1bb52be21ca221

Vicent Martí 2013-06-29T07:34:03

Merge pull request #1690 from nulltoken/fix/warnings Fix Win32/64 compilation warnings & memory leak

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);