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

Re: [PATCH 04/35] object: add repository argument to parse_object_buffer

From
Derrick Stolee <stolee@gmail.com>
Date
May 30, 2018, 18:34 UTC
Message-ID
<e6651365-dd04-98dd-10b7-867bebcc4e27@gmail.com>
In-Reply-To
<20180530004810.30076-5-sbeller@google.com>
On 5/29/2018 8:47 PM, Stefan Beller wrote:
Show 9 quoted lines
> Add a repository argument to allow the callers of parse_object_buffer
> to be more specific about which repository to act on. This is a small
> mechanical change; it doesn't change the implementation to handle
> repositories other than the_repository yet.
>
> As with the previous commits, use a macro to catch callers passing a
> repository other than the_repository at compile time.
>
> Add the cocci patch that converted the callers.
Again, I'm missing the cocci patch here.
Show 129 quoted lines
> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
> Signed-off-by: Stefan Beller <sbeller@google.com>
> ---
>   builtin/fast-export.c    | 3 ++-
>   builtin/fsck.c           | 6 ++++--
>   builtin/index-pack.c     | 3 ++-
>   builtin/unpack-objects.c | 3 ++-
>   object.c                 | 5 +++--
>   object.h                 | 3 ++-
>   ref-filter.c             | 3 ++-
>   7 files changed, 17 insertions(+), 9 deletions(-)
>
> diff --git a/builtin/fast-export.c b/builtin/fast-export.c
> index 24d42842f9d..a34ab9768f4 100644
> --- a/builtin/fast-export.c
> +++ b/builtin/fast-export.c
> @@ -245,7 +245,8 @@ static void export_blob(const struct object_id *oid)
>   			die ("Could not read blob %s", oid_to_hex(oid));
>   		if (check_object_signature(oid, buf, size, type_name(type)) < 0)
>   			die("sha1 mismatch in blob %s", oid_to_hex(oid));
> -		object = parse_object_buffer(oid, type, size, buf, &eaten);
> +		object = parse_object_buffer(the_repository, oid, type,
> +					     size, buf, &eaten);
>   	}
>   
>   	if (!object)
> diff --git a/builtin/fsck.c b/builtin/fsck.c
> index 700739804fc..e6d6eb266eb 100644
> --- a/builtin/fsck.c
> +++ b/builtin/fsck.c
> @@ -392,7 +392,8 @@ static int fsck_obj_buffer(const struct object_id *oid, enum object_type type,
>   	 * verify_packfile(), data_valid variable for details.
>   	 */
>   	struct object *obj;
> -	obj = parse_object_buffer(oid, type, size, buffer, eaten);
> +	obj = parse_object_buffer(the_repository, oid, type, size, buffer,
> +				  eaten);
>   	if (!obj) {
>   		errors_found |= ERROR_OBJECT;
>   		return error("%s: object corrupt or missing", oid_to_hex(oid));
> @@ -522,7 +523,8 @@ static struct object *parse_loose_object(const struct object_id *oid,
>   	if (!contents && type != OBJ_BLOB)
>   		die("BUG: read_loose_object streamed a non-blob");
>   
> -	obj = parse_object_buffer(oid, type, size, contents, &eaten);
> +	obj = parse_object_buffer(the_repository, oid, type, size,
> +				  contents, &eaten);
>   
>   	if (!eaten)
>   		free(contents);
> diff --git a/builtin/index-pack.c b/builtin/index-pack.c
> index e2f670bef9e..0dd10693597 100644
> --- a/builtin/index-pack.c
> +++ b/builtin/index-pack.c
> @@ -848,7 +848,8 @@ static void sha1_object(const void *data, struct object_entry *obj_entry,
>   			 * we do not need to free the memory here, as the
>   			 * buf is deleted by the caller.
>   			 */
> -			obj = parse_object_buffer(oid, type, size, buf,
> +			obj = parse_object_buffer(the_repository, oid, type,
> +						  size, buf,
>   						  &eaten);
>   			if (!obj)
>   				die(_("invalid %s"), type_name(type));
> diff --git a/builtin/unpack-objects.c b/builtin/unpack-objects.c
> index 9a4d2708123..8e454c48649 100644
> --- a/builtin/unpack-objects.c
> +++ b/builtin/unpack-objects.c
> @@ -265,7 +265,8 @@ static void write_object(unsigned nr, enum object_type type,
>   		int eaten;
>   		hash_object_file(buf, size, type_name(type), &obj_list[nr].oid);
>   		added_object(nr, type, buf, size);
> -		obj = parse_object_buffer(&obj_list[nr].oid, type, size, buf,
> +		obj = parse_object_buffer(the_repository, &obj_list[nr].oid,
> +					  type, size, buf,
>   					  &eaten);
>   		if (!obj)
>   			die("invalid %s", type_name(type));
> diff --git a/object.c b/object.c
> index def3c71cac2..4250ddd3f7f 100644
> --- a/object.c
> +++ b/object.c
> @@ -186,7 +186,7 @@ struct object *lookup_unknown_object_the_repository(const unsigned char *sha1)
>   	return obj;
>   }
>   
> -struct object *parse_object_buffer(const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p)
> +struct object *parse_object_buffer_the_repository(const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p)
>   {
>   	struct object *obj;
>   	*eaten_p = 0;
> @@ -278,7 +278,8 @@ struct object *parse_object_the_repository(const struct object_id *oid)
>   			return NULL;
>   		}
>   
> -		obj = parse_object_buffer(oid, type, size, buffer, &eaten);
> +		obj = parse_object_buffer(the_repository, oid, type, size,
> +					  buffer, &eaten);
>   		if (!eaten)
>   			free(buffer);
>   		return obj;
> diff --git a/object.h b/object.h
> index 778f83bf0f7..c6386d7b6b1 100644
> --- a/object.h
> +++ b/object.h
> @@ -136,7 +136,8 @@ struct object *parse_object_or_die(const struct object_id *oid, const char *name
>    * parsing it.  eaten_p indicates if the object has a borrowed copy
>    * of buffer and the caller should not free() it.
>    */
> -struct object *parse_object_buffer(const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p);
> +#define parse_object_buffer(r, o, t, s, b, e) parse_object_buffer_##r(o, t, s, b, e)
> +struct object *parse_object_buffer_the_repository(const struct object_id *oid, enum object_type type, unsigned long size, void *buffer, int *eaten_p);
>   
>   /** Returns the object, with potentially excess memory allocated. **/
>   #define lookup_unknown_object(r, s) lookup_unknown_object_##r(s)
> diff --git a/ref-filter.c b/ref-filter.c
> index 6ebb4630f9c..7e57c07bf54 100644
> --- a/ref-filter.c
> +++ b/ref-filter.c
> @@ -806,7 +806,8 @@ static void *get_obj(const struct object_id *oid, struct object **obj, unsigned
>   	void *buf = read_object_file(oid, &type, sz);
>   
>   	if (buf)
> -		*obj = parse_object_buffer(oid, type, *sz, buf, eaten);
> +		*obj = parse_object_buffer(the_repository, oid, type, *sz,
> +					   buf, eaten);
>   	else
>   		*obj = NULL;
>   	return buf;
Previous: Stefan BellerNext: Stefan Beller
Message 5 of 92 in “object-store: lookup_commit”
  1. 00/35 object-store: lookup_commitStefan Beller, May 30, 2018
  2. 01/35 object: add repository argument to parse_objectStefan Beller, May 30, 2018
  3. 02/35 object: add repository argument to lookup_objectStefan Beller, May 30, 2018
  4. 04/35 object: add repository argument to parse_object_bufferStefan Beller, May 30, 2018
  5. Derrick StoleeMay 30, 2018
  6. 03/35 object: add repository argument to lookup_unknown_objectStefan Beller, May 30, 2018
  7. Derrick StoleeMay 30, 2018
  8. Duy NguyenJun 6, 2018
  9. Stefan BellerJun 13, 2018
  10. Derrick StoleeJun 14, 2018
  11. 05/35 object: add repository argument to object_as_typeStefan Beller, May 30, 2018
  12. 06/35 blob: add repository argument to lookup_blobStefan Beller, May 30, 2018
  13. Derrick StoleeMay 30, 2018
  14. 10/35 commit: add repository argument to lookup_commitStefan Beller, May 30, 2018
  15. Duy NguyenJun 14, 2018
  16. Stefan BellerJun 14, 2018
  17. Brandon WilliamsJun 14, 2018
  18. 09/35 commit: add repository argument to lookup_commit_referenceStefan Beller, May 30, 2018
  19. 08/35 commit: add repository argument to lookup_commit_reference_gentlyStefan Beller, May 30, 2018
  20. 07/35 tree: add repository argument to lookup_treeStefan Beller, May 30, 2018
  21. Duy NguyenJun 6, 2018
  22. 11/35 commit: add repository argument to parse_commit_bufferStefan Beller, May 30, 2018
  23. 12/35 commit: add repository argument to set_commit_bufferStefan Beller, May 30, 2018
  24. 25/35 tag: allow parse_tag_buffer to handle arbitrary repositoriesStefan Beller, May 30, 2018
  25. 24/35 tag: allow lookup_tag to handle arbitrary repositoriesStefan Beller, May 30, 2018
  26. 23/35 commit: allow lookup_commit to handle arbitrary repositoriesStefan Beller, May 30, 2018
  27. 26/35 commit.c: allow parse_commit_buffer to handle arbitrary repositoriesStefan Beller, May 30, 2018
  28. 22/35 tree: allow lookup_tree to handle arbitrary repositoriesStefan Beller, May 30, 2018
  29. 21/35 blob: allow lookup_blob to handle arbitrary repositoriesStefan Beller, May 30, 2018
  30. 20/35 object: allow lookup_object to handle arbitrary repositoriesStefan Beller, May 30, 2018
  31. 35/35 commit.c: allow lookup_commit_reference to handle arbitrary repositoriesStefan Beller, May 30, 2018
  32. 34/35 commit.c: allow lookup_commit_reference_gently to handle arbitrary repositoriesStefan Beller, May 30, 2018
  33. 32/35 object.c: allow parse_object to handle arbitrary repositoriesStefan Beller, May 30, 2018
  34. 31/35 object.c: allow parse_object_buffer to handle arbitrary repositoriesStefan Beller, May 30, 2018
  35. 33/35 tag.c: allow deref_tag to handle arbitrary repositoriesStefan Beller, May 30, 2018
  36. 30/35 commit.c: allow get_cached_commit_buffer to handle arbitrary repositoriesStefan Beller, May 30, 2018
  37. 29/35 commit.c: allow set_commit_buffer to handle arbitrary repositoriesStefan Beller, May 30, 2018
  38. 28/35 commit.c: migrate the commit buffer to the parsed object storeStefan Beller, May 30, 2018
  39. Duy NguyenJun 6, 2018
  40. Stefan BellerJun 13, 2018
  41. 27/35 commit-slabs: remove realloc counter outside of slab structStefan Beller, May 30, 2018
  42. Derrick StoleeMay 30, 2018
  43. 19/35 object: allow object_as_type to handle arbitrary repositoriesStefan Beller, May 30, 2018
  44. 17/35 object: add repository argument to parse_commit_gentlyStefan Beller, May 30, 2018
  45. 16/35 tag: add repository argument to deref_tagStefan Beller, May 30, 2018
  46. 14/35 tag: add repository argument to lookup_tagStefan Beller, May 30, 2018
  47. 15/35 tag: add repository argument to parse_tag_bufferStefan Beller, May 30, 2018
  48. 13/35 commit: add repository argument to get_cached_commit_bufferStefan Beller, May 30, 2018
  49. 18/35 commit: add repository argument to parse_commitStefan Beller, May 30, 2018
  50. Derrick StoleeMay 30, 2018
  51. Stefan BellerMay 30, 2018
  52. Derrick StoleeMay 30, 2018
  53. Stefan BellerMay 30, 2018
  54. 00/31 object-store: lookup_commitStefan Beller, Jun 13, 2018
  55. 01/31 object: add repository argument to lookup_objectStefan Beller, Jun 13, 2018
  56. 02/31 object: add repository argument to parse_object_bufferStefan Beller, Jun 13, 2018
  57. 03/31 object: add repository argument to object_as_typeStefan Beller, Jun 13, 2018
  58. 04/31 blob: add repository argument to lookup_blobStefan Beller, Jun 13, 2018
  59. 06/31 commit: add repository argument to lookup_commit_reference_gentlyStefan Beller, Jun 13, 2018
  60. 05/31 tree: add repository argument to lookup_treeStefan Beller, Jun 13, 2018
  61. Derrick StoleeJun 14, 2018
  62. Derrick StoleeJun 14, 2018
  63. Stefan BellerJun 14, 2018
  64. 08/31 commit: add repository argument to lookup_commitStefan Beller, Jun 13, 2018
  65. 07/31 commit: add repository argument to lookup_commit_referenceStefan Beller, Jun 13, 2018
  66. 10/31 commit: add repository argument to set_commit_bufferStefan Beller, Jun 13, 2018
  67. 12/31 tag: add repository argument to lookup_tagStefan Beller, Jun 13, 2018
  68. 13/31 tag: add repository argument to parse_tag_bufferStefan Beller, Jun 13, 2018
  69. 14/31 tag: add repository argument to deref_tagStefan Beller, Jun 13, 2018
  70. 15/31 object: allow object_as_type to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  71. 17/31 blob: allow lookup_blob to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  72. 18/31 tree: allow lookup_tree to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  73. 16/31 object: allow lookup_object to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  74. 09/31 commit: add repository argument to parse_commit_bufferStefan Beller, Jun 13, 2018
  75. 22/31 commit.c: allow parse_commit_buffer to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  76. 23/31 commit-slabs: remove realloc counter outside of slab structStefan Beller, Jun 13, 2018
  77. 25/31 commit.c: allow set_commit_buffer to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  78. 26/31 commit.c: allow get_cached_commit_buffer to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  79. 27/31 object.c: allow parse_object_buffer to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  80. 29/31 tag.c: allow deref_tag to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  81. 24/31 commit.c: migrate the commit buffer to the parsed object storeStefan Beller, Jun 13, 2018
  82. 31/31 commit.c: allow lookup_commit_reference to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  83. 28/31 object.c: allow parse_object to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  84. 30/31 commit.c: allow lookup_commit_reference_gently to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  85. 11/31 commit: add repository argument to get_cached_commit_bufferStefan Beller, Jun 13, 2018
  86. 19/31 commit: allow lookup_commit to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  87. 20/31 tag: allow lookup_tag to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  88. 21/31 tag: allow parse_tag_buffer to handle arbitrary repositoriesStefan Beller, Jun 13, 2018
  89. Derrick StoleeJun 14, 2018
  90. Derrick StoleeJun 14, 2018
  91. Duy NguyenJun 14, 2018
  92. Brandon WilliamsJun 14, 2018

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.