diff options
author | Leo Yang <lyang@topologyinc.com> | 2015-04-28 12:40:20 -0400 |
---|---|---|
committer | Leo Yang <lyang@topologyinc.com> | 2015-04-28 12:40:20 -0400 |
commit | 69f0032b4c9fb48df56cf4eca6e535f2618ed864 (patch) | |
tree | 9b3652146fa7a9afa67309ab8b3e6a03d1fd5799 | |
parent | d969d41547080d5e924d49f44ba5de1ade5b343c (diff) | |
download | libgit2-69f0032b4c9fb48df56cf4eca6e535f2618ed864.tar.gz |
Fix some build warnings
In checkout.c and filter.c we were casting a sub struct
to a parent struct which breaks the strict aliasing rules
in C. However we can use .parent or .base to access the
parent struct to avoid the build warnings.
In remote.c the local variable error was not initialized
or updated in some cases. For unintialized error a build
warning will be generated. So always keep error variable
up-to-date.
-rw-r--r-- | src/checkout.c | 2 | ||||
-rw-r--r-- | src/filter.c | 6 | ||||
-rw-r--r-- | src/remote.c | 8 |
3 files changed, 8 insertions, 8 deletions
diff --git a/src/checkout.c b/src/checkout.c index 0b6e298a0..478130879 100644 --- a/src/checkout.c +++ b/src/checkout.c @@ -1457,7 +1457,7 @@ static int blob_content_to_file( writer.fd = fd; writer.open = 1; - error = git_filter_list_stream_blob(fl, blob, (git_writestream *)&writer); + error = git_filter_list_stream_blob(fl, blob, &writer.base); assert(writer.open == 0); diff --git a/src/filter.c b/src/filter.c index 8bd7f4d07..19c793e89 100644 --- a/src/filter.c +++ b/src/filter.c @@ -671,7 +671,7 @@ int git_filter_list_apply_to_data( buf_stream_init(&writer, tgt); if ((error = git_filter_list_stream_data(filters, src, - (git_writestream *)&writer)) < 0) + &writer.parent)) < 0) return error; assert(writer.complete); @@ -690,7 +690,7 @@ int git_filter_list_apply_to_file( buf_stream_init(&writer, out); if ((error = git_filter_list_stream_file( - filters, repo, path, (git_writestream *)&writer)) < 0) + filters, repo, path, &writer.parent)) < 0) return error; assert(writer.complete); @@ -721,7 +721,7 @@ int git_filter_list_apply_to_blob( buf_stream_init(&writer, out); if ((error = git_filter_list_stream_blob( - filters, blob, (git_writestream *)&writer)) < 0) + filters, blob, &writer.parent)) < 0) return error; assert(writer.complete); diff --git a/src/remote.c b/src/remote.c index ac7c43c78..3f840b699 100644 --- a/src/remote.c +++ b/src/remote.c @@ -171,11 +171,11 @@ static int create_internal(git_remote **out, git_repository *repo, const char *n if ((error = git_repository_config_snapshot(&config, repo)) < 0) goto on_error; - if (lookup_remote_prune_config(remote, config, name) < 0) + if ((error = lookup_remote_prune_config(remote, config, name)) < 0) goto on_error; /* Move the data over to where the matching functions can find them */ - if (dwim_refspecs(&remote->active_refspecs, &remote->refspecs, &remote->refs) < 0) + if ((error = dwim_refspecs(&remote->active_refspecs, &remote->refspecs, &remote->refs)) < 0) goto on_error; } @@ -457,7 +457,7 @@ int git_remote_lookup(git_remote **out, git_repository *repo, const char *name) goto cleanup; /* Move the data over to where the matching functions can find them */ - if (dwim_refspecs(&remote->active_refspecs, &remote->refspecs, &remote->refs) < 0) + if ((error = dwim_refspecs(&remote->active_refspecs, &remote->refspecs, &remote->refs)) < 0) goto cleanup; *out = remote; @@ -2330,7 +2330,7 @@ int git_remote_upload(git_remote *remote, const git_strarray *refspecs, const gi goto cleanup; free_refspecs(&remote->active_refspecs); - if (dwim_refspecs(&remote->active_refspecs, &remote->refspecs, &remote->refs) < 0) + if ((error = dwim_refspecs(&remote->active_refspecs, &remote->refspecs, &remote->refs)) < 0) goto cleanup; if (remote->push) { |