Re: [PATCH 3/5] object-file: move empty_tree struct into find_cached_object()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Nov 17, 2024 at 04:08:42AM -0500, Jeff King wrote:
> diff --git a/object-file.c b/object-file.c
> index b7c4fdcabd..5fadd470c1 100644
> --- a/object-file.c
> +++ b/object-file.c
> @@ -325,14 +325,13 @@ static struct cached_object {
>  } *cached_objects;
>  static int cached_object_nr, cached_object_alloc;
>  
> -static struct cached_object empty_tree = {
> -	/* no oid needed; we'll look it up manually based on the_hash_algo */
> -	.type = OBJ_TREE,
> -	.buf = "",
> -};
> -
>  static struct cached_object *find_cached_object(const struct object_id *oid)
>  {
> +	static struct cached_object empty_tree = {
> +		/* no oid needed; we'll look it up manually based on the_hash_algo */
> +		.type = OBJ_TREE,
> +		.buf = "",
> +	};
>  	int i;
>  	struct cached_object *co = cached_objects;

I was wondering whether we want to also mark this as `const` so that no
caller ever gets the idea of modifying the struct. Something like the
below patch (which applies on "master", so it of course would have to
adapt to your changes).

Patrick

diff --git a/object-file.c b/object-file.c
index b1a3463852..f15a3f6a5f 100644
--- a/object-file.c
+++ b/object-file.c
@@ -321,7 +321,7 @@ static struct cached_object {
 } *cached_objects;
 static int cached_object_nr, cached_object_alloc;
 
-static struct cached_object empty_tree = {
+static const struct cached_object empty_tree = {
 	.oid = {
 		.hash = EMPTY_TREE_SHA1_BIN_LITERAL,
 	},
@@ -329,7 +329,7 @@ static struct cached_object empty_tree = {
 	.buf = "",
 };
 
-static struct cached_object *find_cached_object(const struct object_id *oid)
+static const struct cached_object *find_cached_object(const struct object_id *oid)
 {
 	int i;
 	struct cached_object *co = cached_objects;
@@ -1627,7 +1627,7 @@ static int do_oid_object_info_extended(struct repository *r,
 				       struct object_info *oi, unsigned flags)
 {
 	static struct object_info blank_oi = OBJECT_INFO_INIT;
-	struct cached_object *co;
+	const struct cached_object *co;
 	struct pack_entry e;
 	int rtype;
 	const struct object_id *real = oid;




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux