Re: Avoid unecessary MemSet call (src/backend/utils/cache/relcache.c)
Ranier Vilela <ranier.vf@gmail.com>
From: Ranier Vilela <ranier.vf@gmail.com>
To: Justin Pryzby <pryzby@telsasoft.com>
Cc: David Rowley <dgrowleyml@gmail.com>,
Pg Hackers <pgsql-hackers@postgresql.org>
Date: 2022-05-18T00:08:59Z
Lists: pgsql-hackers
Em ter., 17 de mai. de 2022 às 20:18, Justin Pryzby <pryzby@telsasoft.com> escreveu: > 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 ? > It seems true, sorry. Thanks Justin for pointing out my big mistake. I hope this isn't all wasted work, but should I remove the 002 patch. regards, Ranier Vilela
Commits
-
Replace many MemSet calls with struct initialization
- 9fd45870c143 16.0 landed
-
Change some unnecessary MemSet calls
- 258f48f858b0 16.0 landed
-
Avoid unnecessary MemSet call
- 8cd61d288adf 16.0 landed