aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/dmx/glxProxy
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/dmx/glxProxy')
-rw-r--r--xorg-server/hw/dmx/glxProxy/glxcmds.c34
-rw-r--r--xorg-server/hw/dmx/glxProxy/glxscreens.c9
2 files changed, 18 insertions, 25 deletions
diff --git a/xorg-server/hw/dmx/glxProxy/glxcmds.c b/xorg-server/hw/dmx/glxProxy/glxcmds.c
index 4c500c93d..ddcb98135 100644
--- a/xorg-server/hw/dmx/glxProxy/glxcmds.c
+++ b/xorg-server/hw/dmx/glxProxy/glxcmds.c
@@ -284,11 +284,11 @@ CreateContext(__GLXclientState * cl,
* allocate memory for back-end servers info
*/
num_be_screens = to_screen - from_screen + 1;
- glxc->real_ids = (XID *) malloc(sizeof(XID) * num_be_screens);
+ glxc->real_ids = xallocarray(num_be_screens, sizeof(XID));
if (!glxc->real_ids) {
return BadAlloc;
}
- glxc->real_vids = (XID *) malloc(sizeof(XID) * num_be_screens);
+ glxc->real_vids = xallocarray(num_be_screens, sizeof(XID));
if (!glxc->real_vids) {
return BadAlloc;
}
@@ -685,22 +685,16 @@ AddCurrentContext(__GLXclientState * cl, __GLXcontext * glxc, DrawablePtr pDraw)
if (!num) {
table = (__GLXcontext **) malloc(sizeof(__GLXcontext *));
cl->currentDrawables = (DrawablePtr *) malloc(sizeof(DrawablePtr));
- cl->be_currentCTag =
- (GLXContextTag *) malloc(screenInfo.numScreens *
- sizeof(GLXContextTag));
+ cl->be_currentCTag = xallocarray(screenInfo.numScreens,
+ sizeof(GLXContextTag));
}
else {
- table = (__GLXcontext **) realloc(table,
- (num + 1) * sizeof(__GLXcontext *));
- cl->currentDrawables = (DrawablePtr *) realloc(cl->currentDrawables,
- (num +
- 1) *
- sizeof(DrawablePtr));
- cl->be_currentCTag =
- (GLXContextTag *) realloc(cl->be_currentCTag,
- (num +
- 1) * screenInfo.numScreens *
- sizeof(GLXContextTag));
+ table = reallocarray(table, num + 1, sizeof(__GLXcontext *));
+ cl->currentDrawables = reallocarray(cl->currentDrawables, num + 1,
+ sizeof(DrawablePtr));
+ cl->be_currentCTag = reallocarray(cl->be_currentCTag,
+ (num + 1) * screenInfo.numScreens,
+ sizeof(GLXContextTag));
}
table[num] = glxc;
cl->currentDrawables[num] = pDraw;
@@ -1896,7 +1890,7 @@ CreateGLXPixmap(__GLXclientState * cl,
if (!pGlxPixmap) {
return BadAlloc;
}
- pGlxPixmap->be_xids = (XID *) malloc(sizeof(XID) * screenInfo.numScreens);
+ pGlxPixmap->be_xids = xallocarray(screenInfo.numScreens, sizeof(XID));
if (!pGlxPixmap->be_xids) {
free(pGlxPixmap);
return BadAlloc;
@@ -3356,7 +3350,7 @@ __glXCreatePbuffer(__GLXclientState * cl, GLbyte * pc)
return BadAlloc;
}
- pGlxPbuffer->be_xids = (XID *) malloc(sizeof(XID) * screenInfo.numScreens);
+ pGlxPbuffer->be_xids = xallocarray(screenInfo.numScreens, sizeof(XID));
if (!pGlxPbuffer->be_xids) {
free(pGlxPbuffer);
return BadAlloc;
@@ -3617,13 +3611,13 @@ __glXGetDrawableAttributes(__GLXclientState * cl, GLbyte * pc)
}
if (reply.numAttribs) {
- attribs_size = 2 * reply.numAttribs * __GLX_SIZE_CARD32;
- attribs = (CARD32 *) malloc(attribs_size);
+ attribs = xallocarray(reply.numAttribs, 2 * __GLX_SIZE_CARD32);
if (attribs == NULL) {
UnlockDisplay(dpy);
SyncHandle();
return BadAlloc;
}
+ attribs_size = 2 * reply.numAttribs * __GLX_SIZE_CARD32;
_XRead(dpy, (char *) attribs, attribs_size);
}
diff --git a/xorg-server/hw/dmx/glxProxy/glxscreens.c b/xorg-server/hw/dmx/glxProxy/glxscreens.c
index 15bb1e862..508e67ed4 100644
--- a/xorg-server/hw/dmx/glxProxy/glxscreens.c
+++ b/xorg-server/hw/dmx/glxProxy/glxscreens.c
@@ -129,7 +129,7 @@ CalcServerVersionAndExtensions(void)
/*
* read extensions strings of all back-end servers
*/
- be_extensions = (char **) malloc(__glXNumActiveScreens * sizeof(char *));
+ be_extensions = xallocarray(__glXNumActiveScreens, sizeof(char *));
if (!be_extensions)
return;
@@ -237,10 +237,9 @@ __glXScreenInit(GLint numscreens)
// find the set of FBConfigs that are present on all back-end
// servers - only those configs will be supported
*/
- __glXFBConfigs = (__GLXFBConfig **) malloc(dmxScreen0->numFBConfigs *
- (numscreens +
- 1) *
- sizeof(__GLXFBConfig *));
+ __glXFBConfigs =
+ xallocarray(dmxScreen0->numFBConfigs * (numscreens + 1),
+ sizeof(__GLXFBConfig *));
__glXNumFBConfigs = 0;
for (c = 0; c < dmxScreen0->numFBConfigs; c++) {