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

Re: [PATCH] Add compat/setenv.c, use in git.c.

From
Junio C Hamano <junkio@cox.net>
Date
Dec 6, 2005, 21:41 UTC
Message-ID
<7vwtih299f.fsf@assigned-by-dhcp.cox.net>
In-Reply-To
<118833cc0512061310r6398f812ia47a84d3cfad1564@mail.gmail.com>
Morten Welinder <mwelinder@gmail.com> writes:
Show 14 quoted lines
> The code looks wrong.  It assumes that pointers are no larger than ints.
> If pointers are larger than ints, the code does not necessarily compute
> a consistent ordering and qsort is allowed to do whatever it wants.
>
> Morten
>
>
>
> static int compare_object_pointers(const void *a, const void *b)
> {
> 	const struct object * const *pa = a;
> 	const struct object * const *pb = b;
> 	return *pa - *pb;
> }
Are you suggesting it to be done like this?

--- git diff

diff --git a/object.c b/object.c
index 427e14c..dac5c92 100644
--- a/object.c
+++ b/object.c
@@ -82,7 +82,12 @@ static int compare_object_pointers(const
 {
 	const struct object * const *pa = a;
 	const struct object * const *pb = b;
-	return *pa - *pb;
+	if (*pa == *pb)
+		return 0;
+	else if (*pa < *pb)
+		return -1;
+	else
+		return 1;
 }
 
 void set_object_refs(struct object *obj, struct object_refs *refs)
Previous: Morten WelinderNext: Jason Riedy
Message 12 of 15 in “Add compat/setenv.c, use in git.c.”
  1. Add compat/setenv.c, use in git.c.Jason Riedy, Dec 2, 2005
  2. Junio C HamanoDec 4, 2005
  3. H. Peter AnvinDec 4, 2005
  4. Junio C HamanoDec 4, 2005
  5. Junio C HamanoDec 4, 2005
  6. H. Peter AnvinDec 4, 2005
  7. Jason RiedyDec 5, 2005
  8. H. Peter AnvinDec 5, 2005
  9. Junio C HamanoDec 6, 2005
  10. Jason RiedyDec 6, 2005
  11. Morten WelinderDec 6, 2005
  12. Junio C HamanoDec 6, 2005
  13. Jason RiedyDec 6, 2005
  14. Morten WelinderDec 7, 2005
  15. compat/setenv: do not free what we fed putenv(3).Junio C Hamano, Dec 4, 2005

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.