| From: | Justin Pryzby <pryzby(at)telsasoft(dot)com> |
|---|---|
| To: | Ranier Vilela <ranier(dot)vf(at)gmail(dot)com> |
| Cc: | David Rowley <dgrowleyml(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: Avoid unecessary MemSet call (src/backend/utils/cache/relcache.c) |
| Date: | 2022-05-17 23:18:55 |
| Message-ID: | 20220517231855.GG19626@telsasoft.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Tue, May 17, 2022 at 07:52:30PM -0300, Ranier Vilela wrote:
> I found, I believe, a serious problem of incorrect usage of the memset api.
> Historically, people have relied on using memset or MemSet, using the
> variable name as an argument for the sizeof.
> While it works correctly, for arrays, when it comes to pointers to
> structures, things go awry.
Knowing how sizeof() works is required before using it - the same is true for
pointers.
> So throughout the code there are these misuses.
Why do you think it's a misuse ?
Take the first one as an example. It says:
GenericCosts costs;
MemSet(&costs, 0, sizeof(costs));
You sent a patch to change it to sizeof(GenericCosts).
But it's not a pointer, so they are the same.
Is that true for every change in your patch ?
--
Justin
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2022-05-17 23:22:20 | Re: Avoid unecessary MemSet call (src/backend/utils/cache/relcache.c) |
| Previous Message | Ranier Vilela | 2022-05-17 22:52:30 | Re: Avoid unecessary MemSet call (src/backend/utils/cache/relcache.c) |