From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Christian Couder" <christian.couder@gmail.com>,
"Arjun Sreedharan" <arjun024@gmail.com>,
git <git@vger.kernel.org>,
"Christian Couder" <chriscool@tuxfamily.org>,
"Nguyễn Thái Ngọc" <pclouds@gmail.com>
Subject: [PATCH 3/3] log-tree: use FLEX_ARRAY in name_decoration
Date: Tue, 26 Aug 2014 06:24:20 -0400 [thread overview]
Message-ID: <20140826102420.GC25687@peff.net> (raw)
In-Reply-To: <20140826102051.GA4885@peff.net>
We are already using the flex-array technique; let's
annotate it with our usual FLEX_ARRAY macro. Besides being
more readable, this is slightly more efficient on compilers
that understand flex-arrays.
Note that we need to bump the allocation in add_name_decoration,
which did not explicitly add one byte for the NUL terminator
of the string we putting into the flex-array (it did not
need to before, because the struct itself was over-allocated
by one byte).
Signed-off-by: Jeff King <peff@peff.net>
---
This could come first in the series, but doing it last means we only
have to update one spot. :)
commit.h | 2 +-
log-tree.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/commit.h b/commit.h
index 263b49e..1516fc9 100644
--- a/commit.h
+++ b/commit.h
@@ -29,7 +29,7 @@ extern const char *commit_type;
struct name_decoration {
struct name_decoration *next;
int type;
- char name[1];
+ char name[FLEX_ARRAY];
};
enum decoration_type {
diff --git a/log-tree.c b/log-tree.c
index 7cbc4ee..fb60018 100644
--- a/log-tree.c
+++ b/log-tree.c
@@ -77,7 +77,7 @@ int parse_decorate_color_config(const char *var, const int ofs, const char *valu
void add_name_decoration(enum decoration_type type, const char *name, struct object *obj)
{
int nlen = strlen(name);
- struct name_decoration *res = xmalloc(sizeof(struct name_decoration) + nlen);
+ struct name_decoration *res = xmalloc(sizeof(*res) + nlen + 1);
memcpy(res->name, name, nlen + 1);
res->type = type;
res->next = add_decoration(&name_decoration, obj, res);
--
2.1.0.346.ga0367b9
next prev parent reply other threads:[~2014-08-26 10:24 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-24 14:17 [PATCH] bisect: save heap memory. allocate only the required amount Arjun Sreedharan
2014-08-24 15:10 ` Stefan Beller
2014-08-24 23:39 ` Junio C Hamano
2014-08-25 13:07 ` Jeff King
2014-08-25 21:36 ` Junio C Hamano
2014-08-26 11:03 ` Jeff King
2014-08-26 11:57 ` Ramsay Jones
2014-08-26 12:14 ` Jeff King
2014-08-26 12:37 ` Ramsay Jones
2014-08-26 12:43 ` Jeff King
2014-08-26 12:59 ` Ramsay Jones
2014-08-24 15:32 ` Ramsay Jones
2014-08-24 21:55 ` Arjun Sreedharan
2014-08-25 13:35 ` Jeff King
2014-08-25 14:06 ` Christian Couder
2014-08-25 15:00 ` Jeff King
2014-08-25 18:26 ` Junio C Hamano
2014-08-25 19:35 ` Jeff King
2014-08-25 20:27 ` Arjun Sreedharan
2014-08-25 21:11 ` Junio C Hamano
2014-08-26 10:20 ` [PATCH 0/3] name_decoration cleanups Jeff King
2014-08-26 10:23 ` [PATCH 1/3] log-tree: make add_name_decoration a public function Jeff King
2014-08-26 11:48 ` Ramsay Jones
2014-08-26 12:17 ` Jeff King
2014-08-26 10:23 ` [PATCH 2/3] log-tree: make name_decoration hash static Jeff King
2014-08-26 17:40 ` Junio C Hamano
2014-08-26 17:43 ` Jeff King
2014-08-26 19:25 ` Junio C Hamano
2014-08-26 10:24 ` Jeff King [this message]
2014-08-27 0:30 ` [PATCH 3/3] log-tree: use FLEX_ARRAY in name_decoration Eric Sunshine
2014-08-25 21:14 ` [PATCH] bisect: save heap memory. allocate only the required amount Junio C Hamano
2014-08-26 7:30 ` Arjun Sreedharan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140826102420.GC25687@peff.net \
--to=peff@peff.net \
--cc=arjun024@gmail.com \
--cc=chriscool@tuxfamily.org \
--cc=christian.couder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=pclouds@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).