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

Re: [PATCH 1/2] add macro REALLOCARRAY

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 16, 2014, 19:27 UTC
Message-ID
<xmqqy4tj1i39.fsf@gitster.dls.corp.google.com>
In-Reply-To
<541886D5.8060202@web.de>
René Scharfe <l.s.r@web.de> writes:
Show 16 quoted lines
> Am 16.09.2014 um 05:04 schrieb Junio C Hamano:
>> On Sun, Sep 14, 2014 at 9:55 AM, René Scharfe <l.s.r@web.de> wrote:
>>> +#define REALLOCARRAY(x, alloc) x = xrealloc((x), (alloc) * sizeof(*(x)))
>>
>> I have been wondering if "x" could be an expression that has an operator
>> that binds weaker than the assignment '='.  That may necessitate the LHS
>> of the assignment to be somehow marked as bound the tightest, i.e.
>>
>> #define REALLOC_ARRAY(x, alloc) (x) = xrealloc((x), (alloc) * sizeof(*(x)))
>>
>> Or am I being overly silly?
>
> ALLOC_GROW did well without that.  I can't think of a good use case
> for a complex expression on the right-hand side.  That said, I think I
> still have a spare matching pair of parentheses lying around here
> somewhere, so let's play it safe and use them. :)

Yeah, as long as (any) is still an lvalue for any lvalue for everybody's compiler, (x) = ... expression ... is safer, but taking cue from ALLOC_GROW(), I would say I was probably being slightly overly silly.

Previous: René Scharfe
Message 14 of 14 in “add macro REALLOCARRAY”
  1. 1/2 add macro REALLOCARRAYRené Scharfe, Sep 14, 2014
  2. 2/2 use REALLOCARRAY for changing the allocation size of arraysRené Scharfe, Sep 14, 2014
  3. Junio C HamanoSep 15, 2014
  4. Jeff KingSep 17, 2014
  5. Junio C HamanoSep 16, 2014
  6. René ScharfeSep 16, 2014
  7. 1/2 add macro REALLOC_ARRAYRené Scharfe, Sep 16, 2014
  8. Michael HaggertySep 24, 2014
  9. Junio C HamanoSep 24, 2014
  10. René ScharfeSep 24, 2014
  11. 2/2 use REALLOC_ARRAY for changing the allocation size of arraysRené Scharfe, Sep 16, 2014
  12. Jonathan NiederSep 24, 2014
  13. René ScharfeSep 24, 2014
  14. Junio C HamanoSep 16, 2014

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.