Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [RFC PATCH] revert: Use assert to catch inherent program bugs

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:51:17

Ramkumar Ramachandra [off-list ref] writes:
Instead of returning and error status or calling die, use an assert
statement to guard against callers who don't call the functions with
sane arguments.
Please do not do this.  assert() is a mechanism to aid debugging in a
development build, and can be stripped away in the production build.
quoted hunk
diff --git a/builtin/revert.c b/builtin/revert.c
index f697e66..8102d77 100644
--- a/builtin/revert.c
+++ b/builtin/revert.c
@@ -123,8 +123,7 @@ static int get_message(const char *raw_message, struct commit_message *out)
 	int abbrev_len, subject_len;
 	char *q;
 
-	if (!raw_message)
-		return -1;
+	assert(raw_message);
 	encoding = get_encoding(raw_message);
This change is wrong, as you could feed a NULL to get_encoding (and you
also broke that function in the later hunk).

If the calling convention of this internal function is that passing NULL
is a programming bug, please do something like this instead:

	if (!raw_message)
		die("BUG: get_message() called with NULL");
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help