Simplified git_repository_init_results struct.
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
diff --git a/src/repository.c b/src/repository.c
index 3214a56..2ffac45 100644
--- a/src/repository.c
+++ b/src/repository.c
@@ -60,7 +60,6 @@ static struct {
typedef struct git_repository_init_results {
char *path_repository;
- char *path_workdir;
unsigned is_bare:1;
unsigned has_been_reinit:1;
@@ -737,23 +736,16 @@ void git_repository_init__results_free(git_repository_init_results* init_results
if (init_results == NULL)
return;
- if (init_results->path_workdir)
- free(init_results->path_workdir);
if (init_results->path_repository)
free(init_results->path_repository);
-
- free(init_results);
}
-git_repository_init_results *git_repository_init_results__alloc()
+void git_repository_init__zero_init_results(git_repository_init_results* results)
{
- git_repository_init_results *results = git__malloc(sizeof(git_repository_init_results));
if (!results)
- return NULL;
+ return;
memset(results, 0x0, sizeof(git_repository_init_results));
-
- return results;
}
int git_repository_init__reinit(git_repository_init_results* results)
@@ -786,7 +778,7 @@ int git_repository_init__create_structure(git_repository_init_results* results)
return GIT_SUCCESS;
}
-int git_repository_init__assign_folders(git_repository_init_results* results, const char* path)
+int git_repository_init__assign_git_directory(git_repository_init_results* results, const char* path)
{
const int MAX_GITDIR_TREE_STRUCTURE_PATH_LENGTH = 66; // TODO: How many ?
char temp_path[GIT_PATH_MAX];
@@ -805,13 +797,8 @@ int git_repository_init__assign_folders(git_repository_init_results* results, co
assert(path_len < GIT_PATH_MAX - MAX_GITDIR_TREE_STRUCTURE_PATH_LENGTH);
- if (results->is_bare)
+ if (!results->is_bare)
{
- results->path_workdir = NULL;
- }
- else
- {
- results->path_workdir = git__strdup(temp_path);
strcpy(temp_path + path_len - 1, GIT_FOLDER);
path_len = path_len + strlen(GIT_FOLDER) - 1; /* Skip the leading slash from the constant */
}
@@ -823,22 +810,20 @@ int git_repository_init__assign_folders(git_repository_init_results* results, co
int git_repository_init(git_repository** repo_out, const char* path, unsigned is_bare)
{
- git_repository_init_results* results;
+ git_repository_init_results results;
int error = GIT_SUCCESS;
assert(repo_out && path);
- results = git_repository_init_results__alloc();
- if (results == NULL)
- return GIT_ENOMEM;
+ git_repository_init__zero_init_results(&results);
- results->is_bare = is_bare;
+ results.is_bare = is_bare;
- error = git_repository_init__assign_folders(results, path);
+ error = git_repository_init__assign_git_directory(&results, path);
if (error < GIT_SUCCESS)
goto cleanup;
- error = git_repository_init__create_structure(results);
+ error = git_repository_init__create_structure(&results);
if (error < GIT_SUCCESS)
goto cleanup;
@@ -848,6 +833,6 @@ int git_repository_init(git_repository** repo_out, const char* path, unsigned is
// goto cleanup;
cleanup:
- git_repository_init__results_free(results);
+ git_repository_init__results_free(&results);
return error;
}
\ No newline at end of file