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

Re: [PATCH] mergesort: avoid left shift overflow

From
Philip Oakley <philipoakley@iee.email>
Date
Nov 19, 2021, 17:27 UTC
Message-ID
<05e6c0ab-7364-56d8-f0b2-e93c11b327e3@iee.email>
In-Reply-To
<nycvar.QRO.7.76.6.2111191750400.63@tvgsbejvaqbjf.bet>
On 19/11/2021 16:51, Johannes Schindelin wrote:
Show 44 quoted lines
> Hi Philip,
>
> On Thu, 18 Nov 2021, Philip Oakley wrote:
>
>> On 15/11/2021 23:19, René Scharfe wrote:
>>> Use size_t to match n when building the bitmask for checking whether a
>>> rank is occupied, instead of the default signed int.
>>>
>>> Signed-off-by: René Scharfe <l.s.r@web.de>
>>> ---
>>> Ugh, sorry. :(
>>>
>>>  mergesort.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/mergesort.c b/mergesort.c
>>> index 6216835566..bd9c6ef8ee 100644
>>> --- a/mergesort.c
>>> +++ b/mergesort.c
>>> @@ -63,7 +63,7 @@ void *llist_mergesort(void *list,
>>>  		void *next = get_next_fn(list);
>>>  		if (next)
>>>  			set_next_fn(list, NULL);
>>> -		for (i = 0; n & (1 << i); i++)
>>> +		for (i = 0; n & ((size_t)1 << i); i++)
>>>  			list = llist_merge(ranks[i], list, get_next_fn,
>>>  					   set_next_fn, compare_fn);
>>>  		n++;
>>> --
>>> 2.33.1
>> Looks good to me.
>>
>> I already had this locally as part of an MSVC (Visual Studio) fix for
>> the various C4334 warnings.
>>
>> The other cases are in object-file.c, diffcore-delta.c (2 occurrences) ,
>> and repack.c.
>>
>> My patches are in https://github.com/PhilipOakley/git/tree/oneU_t
> How about rebasing the remaining patches from
> https://github.com/git-for-windows/git/compare/main...PhilipOakley:oneU_t
> on top of `rs/mergesort` and then submitting them, to avoid duplicate
> efforts?
>

I'm not finding a `rs/mergesort` at the  moment. Any particular remote I should find it on, or maybe a different spelling? P.

Previous: René ScharfeNext: Junio C Hamano
Message 8 of 10 in “mergesort: avoid left shift overflow”
  1. mergesort: avoid left shift overflowRené Scharfe, Nov 15, 2021
  2. Johannes SchindelinNov 16, 2021
  3. Junio C HamanoNov 17, 2021
  4. Johannes SchindelinNov 17, 2021
  5. Philip OakleyNov 18, 2021
  6. Johannes SchindelinNov 19, 2021
  7. René ScharfeNov 19, 2021
  8. Philip OakleyNov 19, 2021
  9. Junio C HamanoNov 19, 2021
  10. Philip OakleyNov 19, 2021

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.