Re: PATCH: two slab-like memory allocators
| От | Tomas Vondra | 
|---|---|
| Тема | Re: PATCH: two slab-like memory allocators | 
| Дата | |
| Msg-id | 40888631-2761-6eaa-e76f-3fdf7a09bd03@2ndquadrant.com обсуждение исходный текст  | 
		
| Ответ на | Re: PATCH: two slab-like memory allocators (Andres Freund <andres@anarazel.de>) | 
| Ответы | 
                	
            		Re: PATCH: two slab-like memory allocators
            		
            		 Re: [HACKERS] PATCH: two slab-like memory allocators  | 
		
| Список | pgsql-hackers | 
Dne 11/27/2016 v 11:02 PM Andres Freund napsal(a): > On 2016-11-27 22:21:49 +0100, Petr Jelinek wrote: >> On 27/11/16 21:47, Andres Freund wrote: >>> Hi, >>> >>>>> +typedef struct SlabBlockData *SlabBlock; /* forward reference */ >>>>> +typedef struct SlabChunkData *SlabChunk; >>>>> >>>>> Can we please not continue hiding pointers behind typedefs? It's a bad >>>>> pattern, and that it's fairly widely used isn't a good excuse to >>>>> introduce further usages of it. >>>>> >>>> >>>> Why is it a bad pattern? >>> >>> It hides what is passed by reference, and what by value, and it makes it >>> a guessing game whether you need -> or . since you don't know whether >>> it's a pointer or the actual object. All to save a * in parameter and >>> variable declaration?... >>> >> >> FWIW I don't like that pattern either although it's used in many >> parts of our code-base. > > But relatively few new ones, most of it is pretty old. > I do agree it's not particularly pretty pattern, but in this case it's fairly isolated in the mmgr sources, and I quite value the consistency in this part of the code (i.e. that aset.c, slab.c and generation.c all use the same approach). So I haven't changed this. The attached v7 fixes the off-by-one error in slab.c, causing failures in test_decoding isolation tests, and renames Gen to Generation, as proposed by Petr. regards Tomas
Вложения
В списке pgsql-hackers по дате отправления: