git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] do not pretend sha1write returns errors
@ 2013-12-21 14:13 Jeff King
  2013-12-22 10:55 ` Thomas Rast
  0 siblings, 1 reply; 2+ messages in thread
From: Jeff King @ 2013-12-21 14:13 UTC (permalink / raw)
  To: git; +Cc: Thomas Rast

The sha1write function returns an int, but it will always be
"0". The failure-prone parts of the function happen in the
"flush" callback, which cannot pass an error back to us. So
we just end up calling die() during the flush.

Let's just drop the return value altogether, as it only
confuses callers into thinking that it might be useful.

Only one call site actually checked the return value. We can
drop that check, since it just led to a die() anyway.

Signed-off-by: Jeff King <peff@peff.net>
---
This is kind of a step backwards if we ever wanted to actually make
sha1write's return code mean anything. But I just don't foresee that
happening.

 builtin/pack-objects.c | 2 --
 csum-file.c            | 3 +--
 csum-file.h            | 2 +-
 pack-write.c           | 3 +--
 4 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index dfb4d84..541667f 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -737,8 +737,6 @@ static void write_pack_file(void)
 			f = create_tmp_packfile(&pack_tmp_name);
 
 		offset = write_pack_header(f, nr_remaining);
-		if (!offset)
-			die_errno("unable to write pack header");
 		nr_written = 0;
 		for (; i < nr_objects; i++) {
 			struct object_entry *e = write_order[i];
diff --git a/csum-file.c b/csum-file.c
index 53f5375..b30e4f2 100644
--- a/csum-file.c
+++ b/csum-file.c
@@ -86,7 +86,7 @@ int sha1close(struct sha1file *f, unsigned char *result, unsigned int flags)
 	return fd;
 }
 
-int sha1write(struct sha1file *f, void *buf, unsigned int count)
+void sha1write(struct sha1file *f, void *buf, unsigned int count)
 {
 	while (count) {
 		unsigned offset = f->offset;
@@ -116,7 +116,6 @@ int sha1write(struct sha1file *f, void *buf, unsigned int count)
 		}
 		f->offset = offset;
 	}
-	return 0;
 }
 
 struct sha1file *sha1fd(int fd, const char *name)
diff --git a/csum-file.h b/csum-file.h
index 3b540bd..6a55c7d 100644
--- a/csum-file.h
+++ b/csum-file.h
@@ -34,7 +34,7 @@ extern struct sha1file *sha1fd(int fd, const char *name);
 extern struct sha1file *sha1fd_check(const char *name);
 extern struct sha1file *sha1fd_throughput(int fd, const char *name, struct progress *tp);
 extern int sha1close(struct sha1file *, unsigned char *, unsigned int);
-extern int sha1write(struct sha1file *, void *, unsigned int);
+extern void sha1write(struct sha1file *, void *, unsigned int);
 extern void sha1flush(struct sha1file *f);
 extern void crc32_begin(struct sha1file *);
 extern uint32_t crc32_end(struct sha1file *);
diff --git a/pack-write.c b/pack-write.c
index ca9e63b..676ed4c 100644
--- a/pack-write.c
+++ b/pack-write.c
@@ -189,8 +189,7 @@ off_t write_pack_header(struct sha1file *f, uint32_t nr_entries)
 	hdr.hdr_signature = htonl(PACK_SIGNATURE);
 	hdr.hdr_version = htonl(PACK_VERSION);
 	hdr.hdr_entries = htonl(nr_entries);
-	if (sha1write(f, &hdr, sizeof(hdr)))
-		return 0;
+	sha1write(f, &hdr, sizeof(hdr));
 	return sizeof(hdr);
 }
 
-- 
1.8.5.1.399.g900e7cd

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] do not pretend sha1write returns errors
  2013-12-21 14:13 [PATCH] do not pretend sha1write returns errors Jeff King
@ 2013-12-22 10:55 ` Thomas Rast
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Rast @ 2013-12-22 10:55 UTC (permalink / raw)
  To: Jeff King; +Cc: git

Jeff King <peff@peff.net> writes:

> The sha1write function returns an int, but it will always be
> "0". The failure-prone parts of the function happen in the
> "flush" callback, which cannot pass an error back to us. So
> we just end up calling die() during the flush.
>
> Let's just drop the return value altogether, as it only
> confuses callers into thinking that it might be useful.
>
> Only one call site actually checked the return value. We can
> drop that check, since it just led to a die() anyway.
>
> Signed-off-by: Jeff King <peff@peff.net>

Thanks.

> This is kind of a step backwards if we ever wanted to actually make
> sha1write's return code mean anything. But I just don't foresee that
> happening.

Meh.  It hasn't returned a useful value since its introduction in 2005.

-- 
Thomas Rast
tr@thomasrast.ch

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-12-22 10:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-21 14:13 [PATCH] do not pretend sha1write returns errors Jeff King
2013-12-22 10:55 ` Thomas Rast

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).