diff options
Diffstat (limited to 'xorg-server/hw/dmx/glxProxy')
-rw-r--r-- | xorg-server/hw/dmx/glxProxy/glxcmds.c | 34 | ||||
-rw-r--r-- | xorg-server/hw/dmx/glxProxy/glxscreens.c | 9 |
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++) { |