git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/7] move setting of object->type to alloc_* functions

From
Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Date
Jul 12, 2014, 14:55 UTC
Message-ID
<53C14C67.60300@ramsay1.demon.co.uk>
In-Reply-To
<20140711084611.GB5625@sigill.intra.peff.net>
On 11/07/14 09:46, Jeff King wrote:
[snip]
Sorry, hit send too early ...
Show 36 quoted lines
> diff --git a/blob.c b/blob.c
> index ae320bd..5720a38 100644
> --- a/blob.c
> +++ b/blob.c
> @@ -7,7 +7,7 @@ struct blob *lookup_blob(const unsigned char *sha1)
>  {
>  	struct object *obj = lookup_object(sha1);
>  	if (!obj)
> -		return create_object(sha1, OBJ_BLOB, alloc_blob_node());
> +		return create_object(sha1, alloc_blob_node());
>  	if (!obj->type)
>  		obj->type = OBJ_BLOB;
>  	if (obj->type != OBJ_BLOB) {
> diff --git a/builtin/blame.c b/builtin/blame.c
> index d3b256e..8f3e311 100644
> --- a/builtin/blame.c
> +++ b/builtin/blame.c
> @@ -2287,7 +2287,6 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt,
>  	commit = alloc_commit_node();
>  	commit->object.parsed = 1;
>  	commit->date = now;
> -	commit->object.type = OBJ_COMMIT;
>  	parent_tail = &commit->parents;
>  
>  	if (!resolve_ref_unsafe("HEAD", head_sha1, 1, NULL))
> diff --git a/commit.c b/commit.c
> index fb7897c..21ed310 100644
> --- a/commit.c
> +++ b/commit.c
> @@ -63,7 +63,7 @@ struct commit *lookup_commit(const unsigned char *sha1)
>  	struct object *obj = lookup_object(sha1);
>  	if (!obj) {
>  		struct commit *c = alloc_commit_node();
> -		return create_object(sha1, OBJ_COMMIT, c);
> +		return create_object(sha1, c);
>  	}
perhaps:
	if (!obj)
		return create_object(sha1, alloc_commit_node());
(increasing similarity with other calls here ...)
Show 70 quoted lines
>  	if (!obj->type)
>  		obj->type = OBJ_COMMIT;
> diff --git a/object.c b/object.c
> index 9c31e9a..a950b85 100644
> --- a/object.c
> +++ b/object.c
> @@ -141,13 +141,12 @@ static void grow_object_hash(void)
>  	obj_hash_size = new_hash_size;
>  }
>  
> -void *create_object(const unsigned char *sha1, int type, void *o)
> +void *create_object(const unsigned char *sha1, void *o)
>  {
>  	struct object *obj = o;
>  
>  	obj->parsed = 0;
>  	obj->used = 0;
> -	obj->type = type;
>  	obj->flags = 0;
>  	hashcpy(obj->sha1, sha1);
>  
> @@ -163,7 +162,7 @@ struct object *lookup_unknown_object(const unsigned char *sha1)
>  {
>  	struct object *obj = lookup_object(sha1);
>  	if (!obj)
> -		obj = create_object(sha1, OBJ_NONE, alloc_object_node());
> +		obj = create_object(sha1, alloc_object_node());
>  	return obj;
>  }
>  
> diff --git a/object.h b/object.h
> index 6e12f2c..8020ace 100644
> --- a/object.h
> +++ b/object.h
> @@ -79,7 +79,7 @@ extern struct object *get_indexed_object(unsigned int);
>   */
>  struct object *lookup_object(const unsigned char *sha1);
>  
> -extern void *create_object(const unsigned char *sha1, int type, void *obj);
> +extern void *create_object(const unsigned char *sha1, void *obj);
>  
>  /*
>   * Returns the object, having parsed it to find out what it is.
> diff --git a/tag.c b/tag.c
> index 7b07921..79552c7 100644
> --- a/tag.c
> +++ b/tag.c
> @@ -40,7 +40,7 @@ struct tag *lookup_tag(const unsigned char *sha1)
>  {
>  	struct object *obj = lookup_object(sha1);
>  	if (!obj)
> -		return create_object(sha1, OBJ_TAG, alloc_tag_node());
> +		return create_object(sha1, alloc_tag_node());
>  	if (!obj->type)
>  		obj->type = OBJ_TAG;
>  	if (obj->type != OBJ_TAG) {
> diff --git a/tree.c b/tree.c
> index c8c49d7..ed66575 100644
> --- a/tree.c
> +++ b/tree.c
> @@ -183,7 +183,7 @@ struct tree *lookup_tree(const unsigned char *sha1)
>  {
>  	struct object *obj = lookup_object(sha1);
>  	if (!obj)
> -		return create_object(sha1, OBJ_TREE, alloc_tree_node());
> +		return create_object(sha1, alloc_tree_node());
>  	if (!obj->type)
>  		obj->type = OBJ_TREE;
>  	if (obj->type != OBJ_TREE) {
> 

ATB, Ramsay Jones

Previous: Ramsay JonesNext: Jeff King
Message 26 of 35 in “alloc.c: remove the redundant commit_count variable”
  1. 2/2 alloc.c: remove the redundant commit_count variableRamsay Jones, Jul 10, 2014
  2. Jeff KingJul 11, 2014
  3. Ramsay JonesJul 11, 2014
  4. Jeff KingJul 11, 2014
  5. Ramsay JonesJul 11, 2014
  6. 0/7 ensure index is set for all OBJ_COMMIT objects variableJeff King, Jul 11, 2014
  7. 1/7 alloc.c: remove the alloc_raw_commit_node() functionJeff King, Jul 11, 2014
  8. 2/7 move setting of object->type to alloc_* functionsJeff King, Jul 11, 2014
  9. Ramsay JonesJul 12, 2014
  10. Jeff KingJul 12, 2014
  11. Jeff KingJul 13, 2014
  12. 1/8 alloc.c: remove the alloc_raw_commit_node() functionJeff King, Jul 13, 2014
  13. Junio C HamanoJul 15, 2014
  14. 2/8 alloc: write out allocator definitionsJeff King, Jul 13, 2014
  15. Junio C HamanoJul 15, 2014
  16. 3/8 move setting of object->type to alloc_* functionsJeff King, Jul 13, 2014
  17. Junio C HamanoJul 15, 2014
  18. 4/8 parse_object_buffer: do not set object typeJeff King, Jul 13, 2014
  19. 5/8 add object_as_type helper for casting objectsJeff King, Jul 13, 2014
  20. 6/8 alloc: factor out commit indexJeff King, Jul 13, 2014
  21. 7/8 object_as_type: set commit indexJeff King, Jul 13, 2014
  22. 8/8 diff-tree: avoid lookup_unknown_objectJeff King, Jul 13, 2014
  23. Ramsay JonesJul 13, 2014
  24. Jeff KingJul 14, 2014
  25. Ramsay JonesJul 14, 2014
  26. Ramsay JonesJul 12, 2014
  27. Jeff KingJul 12, 2014
  28. 3/7 parse_object_buffer: do not set object typeJeff King, Jul 11, 2014
  29. 4/7 add object_as_type helper for casting objectsJeff King, Jul 11, 2014
  30. Ramsay JonesJul 11, 2014
  31. Jeff KingJul 11, 2014
  32. 5/7 alloc: factor out commit indexJeff King, Jul 11, 2014
  33. 6/7 object_as_type: set commit indexJeff King, Jul 11, 2014
  34. 7/7 diff-tree: avoid lookup_unknown_objectJeff King, Jul 11, 2014
  35. Ramsay JonesJul 11, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.