Re: [PATCH 0/2] Add a freez() wrapper
- From
- Brandon Williams <bmwill@google.com>
- Date
- Jun 9, 2017, 14:53 UTC
- Message-ID
- <20170609145317.GB81269@google.com>
- In-Reply-To
- <20170609085346.19974-1-avarab@gmail.com>
On 06/09, Ævar Arnfjörð Bjarmason wrote:
Show 21 quoted lines
> On Fri, Jun 9, 2017 at 1:40 AM, Brandon Williams <bmwill@google.com> wrote:
> > Introduce the repository object 'struct repository' which can be used to
> > hold all state pertaining to a git repository.
> > [...]
> > +static void repo_clear_env(struct repository *repo)
> > +{
> > + free(repo->gitdir);
> > + repo->gitdir = NULL;
> > + free(repo->commondir);
> > + repo->commondir = NULL;
> > + free(repo->objectdir);
> > + repo->objectdir = NULL;
> > + free(repo->index_file);
> > + repo->index_file = NULL;
> > + free(repo->graft_file);
> > + repo->graft_file = NULL;
> > + free(repo->namespace);
> > + repo->namespace = NULL;
> > +}
>
> When seeing this I wondered if it couldn't be less noisy as:One of the other alternatives is using memset, but that's difficult to only clear only a few fields.
Show 10 quoted lines
> > > + freez(repo->gitdir); > > + freez(repo->commondir); > > + freez(repo->objectdir); > > + freez(repo->index_file); > > + freez(repo->graft_file); > > + freez(repo->namespace); > > It's not a problem with your patch, but something I thought would be > nice to have in general, so here's a patch series to implement that.
This also could makes things a little less error prone. Thanks!
Show 59 quoted lines
> > Ævar Arnfjörð Bjarmason (2): > git-compat-util: add a freez() wrapper around free(x); x = NULL > *.[ch] refactoring: make use of the freez() wrapper > > alias.c | 6 ++---- > apply.c | 3 +-- > attr.c | 6 ++---- > blame.c | 3 +-- > branch.c | 3 +-- > builtin/am.c | 18 +++++------------- > builtin/clean.c | 6 ++---- > builtin/config.c | 6 ++---- > builtin/index-pack.c | 6 ++---- > builtin/pack-objects.c | 12 ++++-------- > builtin/unpack-objects.c | 3 +-- > builtin/worktree.c | 6 ++---- > commit-slab.h | 3 +-- > commit.c | 3 +-- > config.c | 3 +-- > credential.c | 9 +++------ > diff-lib.c | 3 +-- > diff.c | 6 ++---- > diffcore-rename.c | 6 ++---- > dir.c | 9 +++------ > fast-import.c | 6 ++---- > git-compat-util.h | 1 + > gpg-interface.c | 15 +++++---------- > grep.c | 12 ++++-------- > help.c | 3 +-- > http-push.c | 24 ++++++++---------------- > http.c | 15 +++++---------- > imap-send.c | 3 +-- > line-log.c | 6 ++---- > ll-merge.c | 3 +-- > mailinfo.c | 3 +-- > object.c | 3 +-- > pathspec.c | 3 +-- > prio-queue.c | 3 +-- > read-cache.c | 6 ++---- > ref-filter.c | 3 +-- > refs/files-backend.c | 3 +-- > refs/ref-cache.c | 3 +-- > remote-testsvn.c | 3 +-- > rerere.c | 3 +-- > sequencer.c | 3 +-- > sha1-array.c | 3 +-- > sha1_file.c | 3 +-- > split-index.c | 3 +-- > transport-helper.c | 27 +++++++++------------------ > transport.c | 3 +-- > tree-diff.c | 6 ++---- > tree-walk.c | 3 +-- > tree.c | 3 +-- > 49 files changed, 98 insertions(+), 197 deletions(-) > > -- > 2.13.0.506.g27d5fe0cd >
-- Brandon Williams