dix: use calloc() in _dixAllocateScreenObjectWithPrivates()

We're clearing the whole object size anyways, so we can directly
use calloc() instead of malloc() plus memset().

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2025-03-12 16:45:22 +01:00 committed by Enrico Weigelt, metux IT consult .
parent 37b7ea8f8a
commit e9321ef782
2 changed files with 2 additions and 5 deletions

View File

@ -687,7 +687,6 @@ _dixInitScreenPrivates(ScreenPtr pScreen, PrivatePtr *privates, void *addr, DevP
void * void *
_dixAllocateScreenObjectWithPrivates(ScreenPtr pScreen, _dixAllocateScreenObjectWithPrivates(ScreenPtr pScreen,
unsigned baseSize, unsigned baseSize,
unsigned clear,
unsigned offset, unsigned offset,
DevPrivateType type) DevPrivateType type)
{ {
@ -708,11 +707,10 @@ _dixAllocateScreenObjectWithPrivates(ScreenPtr pScreen,
/* round up so that pointer is aligned */ /* round up so that pointer is aligned */
baseSize = (baseSize + sizeof(void *) - 1) & ~(sizeof(void *) - 1); baseSize = (baseSize + sizeof(void *) - 1) & ~(sizeof(void *) - 1);
totalSize = baseSize + privates_size; totalSize = baseSize + privates_size;
object = malloc(totalSize); object = calloc(1, totalSize);
if (!object) if (!object)
return NULL; return NULL;
memset(object, '\0', clear);
privates = (PrivatePtr) (((char *) object) + baseSize); privates = (PrivatePtr) (((char *) object) + baseSize);
devPrivates = (PrivatePtr *) ((char *) object + offset); devPrivates = (PrivatePtr *) ((char *) object + offset);

View File

@ -258,11 +258,10 @@ Bool dixPrivatesCreated(DevPrivateType type);
extern _X_EXPORT void * extern _X_EXPORT void *
_dixAllocateScreenObjectWithPrivates(ScreenPtr pScreen, _dixAllocateScreenObjectWithPrivates(ScreenPtr pScreen,
unsigned size, unsigned size,
unsigned clear,
unsigned offset, unsigned offset,
DevPrivateType type); DevPrivateType type);
#define dixAllocateScreenObjectWithPrivates(s, t, type) _dixAllocateScreenObjectWithPrivates(s, sizeof(t), sizeof(t), offsetof(t, devPrivates), type) #define dixAllocateScreenObjectWithPrivates(s, t, type) _dixAllocateScreenObjectWithPrivates(s, sizeof(t), offsetof(t, devPrivates), type)
extern _X_EXPORT int extern _X_EXPORT int
dixScreenSpecificPrivatesSize(ScreenPtr pScreen, DevPrivateType type); dixScreenSpecificPrivatesSize(ScreenPtr pScreen, DevPrivateType type);