Re: [PATCH 05/21] Make parse_tag_buffer_internal() handle item == NULL
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jun 10, 2007, 08:06 UTC
- Message-ID
- <Pine.LNX.4.64.0706100905210.4059@racer.site>
- In-Reply-To
- <200706090214.39337.johan@herland.net>
Hi,
On Sat, 9 Jun 2007, Johan Herland wrote:
Show 49 quoted lines
> - tag_len = tagger_line - tag_line - strlen("tag \n");
> - item->tag = xmalloc(tag_len + 1);
> - memcpy(item->tag, tag_line + 4, tag_len);
> - item->tag[tag_len] = '\0';
> -
> - if (!strcmp(type, blob_type)) {
> - item->tagged = &lookup_blob(sha1)->object;
> - } else if (!strcmp(type, tree_type)) {
> - item->tagged = &lookup_tree(sha1)->object;
> - } else if (!strcmp(type, commit_type)) {
> - item->tagged = &lookup_commit(sha1)->object;
> - } else if (!strcmp(type, tag_type)) {
> - item->tagged = &lookup_tag(sha1)->object;
> - } else {
> - error("Unknown type %s", type);
> - item->tagged = NULL;
> - }
> -
> - if (item->tagged && track_object_refs) {
> - struct object_refs *refs = alloc_object_refs(1);
> - refs->ref[0] = item->tagged;
> - set_object_refs(&item->object, refs);
> + if (item) {
> + tag_len = tagger_line - tag_line - strlen("tag \n");
> + item->tag = xmalloc(tag_len + 1);
> + memcpy(item->tag, tag_line + 4, tag_len);
> + item->tag[tag_len] = '\0';
> +
> + if (!strcmp(type, blob_type)) {
> + item->tagged = &lookup_blob(sha1)->object;
> + } else if (!strcmp(type, tree_type)) {
> + item->tagged = &lookup_tree(sha1)->object;
> + } else if (!strcmp(type, commit_type)) {
> + item->tagged = &lookup_commit(sha1)->object;
> + } else if (!strcmp(type, tag_type)) {
> + item->tagged = &lookup_tag(sha1)->object;
> + } else {
> + error("Unknown type %s", type);
> + item->tagged = NULL;
> + }
> +
> + if (item->tagged && track_object_refs) {
> + struct object_refs *refs = alloc_object_refs(1);
> + refs->ref[0] = item->tagged;
> + set_object_refs(&item->object, refs);
> + }
> }
>
> return 0;The patch would have been so much simpler, and so much more descriptive of what you're doing, had you just said
if (!item) return 0;
Ciao, Dscho