diff mbox series

archive: convert queue_directory to struct object_id

Message ID bfdb36fc-3b92-fe62-e928-dc235cede31d@web.de (mailing list archive)
State New, archived
Headers show
Series archive: convert queue_directory to struct object_id | expand

Commit Message

René Scharfe Aug. 27, 2021, 7:59 p.m. UTC
Pass the struct object_id on instead of just its hash member.
This is simpler and avoids the need to guess the algorithm.

Signed-off-by: René Scharfe <l.s.r@web.de>
---
 archive.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

--
2.33.0

Comments

brian m. carlson Aug. 27, 2021, 8:40 p.m. UTC | #1
On 2021-08-27 at 19:59:16, René Scharfe wrote:
> Pass the struct object_id on instead of just its hash member.
> This is simpler and avoids the need to guess the algorithm.

Seems reasonable.
Junio C Hamano Aug. 27, 2021, 9:18 p.m. UTC | #2
"brian m. carlson" <sandals@crustytoothpaste.net> writes:

> On 2021-08-27 at 19:59:16, René Scharfe wrote:
>> Pass the struct object_id on instead of just its hash member.
>> This is simpler and avoids the need to guess the algorithm.
>
> Seems reasonable.

I guess this is about the oidread() you added at the end of the
function, so I'd take the above as your Acked-by ;-)

Thanks, both.  Will queue.
diff mbox series

Patch

diff --git a/archive.c b/archive.c
index 3c266d1d7b..a3bbb09125 100644
--- a/archive.c
+++ b/archive.c
@@ -191,7 +191,7 @@  static int write_archive_entry(const struct object_id *oid, const char *base,
 	return err;
 }

-static void queue_directory(const unsigned char *sha1,
+static void queue_directory(const struct object_id *oid,
 		struct strbuf *base, const char *filename,
 		unsigned mode, struct archiver_context *c)
 {
@@ -203,7 +203,7 @@  static void queue_directory(const unsigned char *sha1,
 	d->mode	   = mode;
 	c->bottom  = d;
 	d->len = xsnprintf(d->path, len, "%.*s%s/", (int)base->len, base->buf, filename);
-	oidread(&d->oid, sha1);
+	oidcpy(&d->oid, oid);
 }

 static int write_directory(struct archiver_context *c)
@@ -250,8 +250,7 @@  static int queue_or_write_archive_entry(const struct object_id *oid,

 		if (check_attr_export_ignore(check))
 			return 0;
-		queue_directory(oid->hash, base, filename,
-				mode, c);
+		queue_directory(oid, base, filename, mode, c);
 		return READ_TREE_RECURSIVE;
 	}