Unverified Commit abf37413 authored by Mike Gabriel's avatar Mike Gabriel

Merge branch 'uli42-pr/various' into 3.6.x

parents c0754a35 c8a5e33f
......@@ -88,7 +88,7 @@ static XrmQuark nextUniq = -1; /* next quark from XrmUniqueQuark */
#define STRQUANTSIZE (sizeof(XrmString) * (QUANTUMMASK + 1))
#ifdef PERMQ
#define QUANTSIZE (STRQUANTSIZE + \
(sizeof(Bits) * ((QUANTUMMASK + 1) >> 3))
(sizeof(Bits) * ((QUANTUMMASK + 1) >> 3)))
#else
#define QUANTSIZE STRQUANTSIZE
#endif
......
......@@ -64,6 +64,7 @@ static void ResetClientState(int clientIndex)
if (cl->returnBuf) free(cl->returnBuf);
if (cl->largeCmdBuf) free(cl->largeCmdBuf);
if (cl->currentContexts) free(cl->currentContexts);
if (cl->GLClientextensions) free(cl->GLClientextensions);
memset(cl, 0, sizeof(__GLXclientState));
/*
** By default, assume that the client supports
......@@ -71,9 +72,6 @@ static void ResetClientState(int clientIndex)
*/
cl->GLClientmajorVersion = 1;
cl->GLClientminorVersion = 0;
if (cl->GLClientextensions)
free(cl->GLClientextensions);
}
/*
......
......@@ -153,11 +153,9 @@ ProcXChangeKeyboardDevice(register ClientPtr client)
df->time = xf->time;
df->traceGood = xf->traceGood;
if (df->traceSize != xf->traceSize) {
Must_have_memory = TRUE; /* XXX */
df->trace = (WindowPtr *) realloc(df->trace,
xf->traceSize *
sizeof(WindowPtr));
Must_have_memory = FALSE; /* XXX */
}
df->traceSize = xf->traceSize;
for (i = 0; i < df->traceSize; i++)
......
......@@ -203,7 +203,15 @@ CloseDevice(register DeviceIntPtr dev)
if (dev->inited)
(void)(*dev->deviceProc)(dev, DEVICE_CLOSE);
#ifdef XKB
while (dev->xkb_interest) {
XkbRemoveResourceClient((DevicePtr)dev,dev->xkb_interest->resource);
}
#endif
free(dev->name);
if (dev->key)
{
#ifdef XKB
......@@ -267,11 +275,6 @@ CloseDevice(register DeviceIntPtr dev)
#endif
free(l);
}
#ifdef XKB
while (dev->xkb_interest) {
XkbRemoveResourceClient((DevicePtr)dev,dev->xkb_interest->resource);
}
#endif
free(dev->sync.event);
free(dev);
}
......
......@@ -4150,7 +4150,10 @@ AddScreen(Bool (*pfnInit) (ScreenPtr /*pScreen */ ,
pScreen->devPrivates = (DevUnion *)calloc(sizeof(DevUnion),
screenPrivateCount);
if (!pScreen->devPrivates && screenPrivateCount)
{
free(pScreen);
return -1;
}
ret = init_screen(pScreen, i);
if (ret != 0) {
......
......@@ -1938,10 +1938,8 @@ XYToWindow(int x, int y)
if (spriteTraceGood >= spriteTraceSize)
{
spriteTraceSize += 10;
Must_have_memory = TRUE; /* XXX */
spriteTrace = (WindowPtr *)realloc(
spriteTrace = realloc(
spriteTrace, spriteTraceSize*sizeof(WindowPtr));
Must_have_memory = FALSE; /* XXX */
}
spriteTrace[spriteTraceGood++] = pWin;
pWin = pWin->firstChild;
......@@ -2455,11 +2453,9 @@ CheckPassiveGrabsOnWindow(
{
if (device->sync.evcount < count)
{
Must_have_memory = TRUE; /* XXX */
device->sync.event = (xEvent *)realloc(device->sync.event,
count*
sizeof(xEvent));
Must_have_memory = FALSE; /* XXX */
device->sync.event = realloc(device->sync.event,
count*
sizeof(xEvent));
}
device->sync.evcount = count;
for (dxE = device->sync.event; --count >= 0; dxE++, xE++)
......@@ -2627,10 +2623,8 @@ DeliverGrabbedEvent(register xEvent *xE, register DeviceIntPtr thisDev,
FreezeThaw(thisDev, TRUE);
if (thisDev->sync.evcount < count)
{
Must_have_memory = TRUE; /* XXX */
thisDev->sync.event = (xEvent *)realloc(thisDev->sync.event,
count*sizeof(xEvent));
Must_have_memory = FALSE; /* XXX */
thisDev->sync.event = realloc(thisDev->sync.event,
count*sizeof(xEvent));
}
thisDev->sync.evcount = count;
for (dxE = thisDev->sync.event; --count >= 0; dxE++, xE++)
......@@ -3505,11 +3499,8 @@ SetInputFocus(
if (depth > focus->traceSize)
{
focus->traceSize = depth+1;
Must_have_memory = TRUE; /* XXX */
focus->trace = (WindowPtr *)realloc(focus->trace,
focus->traceSize *
sizeof(WindowPtr));
Must_have_memory = FALSE; /* XXX */
focus->trace = realloc(focus->trace,
focus->traceSize * sizeof(WindowPtr));
}
focus->traceGood = depth;
for (pWin = focusWin, depth--; pWin; pWin = pWin->parent, depth--)
......
......@@ -410,16 +410,20 @@ fbOverlayFinishScreenInit(ScreenPtr pScreen,
if (!fbInitVisuals (&visuals, &depths, &nvisuals, &ndepths, &depth1,
&defaultVisual, ((unsigned long)1<<(bpp1-1)) |
((unsigned long)1<<(bpp2-1)), 8))
((unsigned long)1<<(bpp2-1)), 8)) {
free(pScrPriv);
return FALSE;
}
if (! miScreenInit(pScreen, 0, xsize, ysize, dpix, dpiy, 0,
depth1, ndepths, depths,
defaultVisual, nvisuals, visuals
#ifdef FB_OLD_MISCREENINIT
, (miBSFuncPtr) 0
#endif
))
)) {
free(pScrPriv);
return FALSE;
}
/* MI thinks there's no frame buffer */
#ifdef MITSHM
ShmRegisterFbFuncs(pScreen);
......
......@@ -1964,14 +1964,14 @@ FIXME: Don't enqueue the KeyRelease event if the key was
}
case UnmapNotify:
{
WindowPtr pWin;
#ifdef TEST
fprintf(stderr, "nxagentDispatchEvents: Going to handle new UnmapNotify event.\n");
#endif
if (nxagentOption(Rootless) == 1)
{
WindowPtr pWin;
if ((pWin = nxagentRootlessTopLevelWindow(X.xunmap.window)) != NULL ||
((pWin = nxagentWindowPtr(X.xunmap.window)) != NULL &&
nxagentWindowTopLevel(pWin) == 1))
......@@ -1995,22 +1995,19 @@ FIXME: Don't enqueue the KeyRelease event if the key was
}
case MapNotify:
{
WindowPtr pWin;
ClientPtr pClient;
#ifdef TEST
fprintf(stderr, "nxagentDispatchEvents: Going to handle new MapNotify event.\n");
#endif
if (nxagentOption(Rootless) == 1)
{
Bool value = 1;
WindowPtr pWin;
if ((pWin = nxagentRootlessTopLevelWindow(X.xmap.window)) != NULL ||
((pWin = nxagentWindowPtr(X.xmap.window)) != NULL &&
nxagentWindowTopLevel(pWin) == 1))
{
pClient = wClient(pWin);
ClientPtr pClient = wClient(pWin);
nxagentScreenTrap = 1;
......@@ -2021,6 +2018,8 @@ FIXME: Don't enqueue the KeyRelease event if the key was
if (pWin != NULL)
{
Bool value = 1;
TraverseTree(pWin, nxagentChangeMapPrivate, &value);
}
}
......@@ -2355,8 +2354,6 @@ int nxagentHandleKeyPress(XEvent *X, enum HandleEventResult *result)
int nxagentHandlePropertyNotify(XEvent *X)
{
int resource;
if (nxagentOption(Rootless) && !nxagentNotifyMatchChangeProperty((XPropertyEvent *) X))
{
#ifdef TEST
......@@ -2366,7 +2363,7 @@ int nxagentHandlePropertyNotify(XEvent *X)
if (nxagentWindowPtr(X -> xproperty.window) != NULL)
{
resource = NXGetCollectPropertyResource(nxagentDisplay);
int resource = NXGetCollectPropertyResource(nxagentDisplay);
if (resource == -1)
{
......@@ -2643,8 +2640,6 @@ int nxagentHandleGraphicsExposeEvent(XEvent *X)
int nxagentHandleClientMessageEvent(XEvent *X, enum HandleEventResult *result)
{
WindowPtr pWin;
*result = doNothing;
#ifdef TEST
......@@ -2680,7 +2675,7 @@ int nxagentHandleClientMessageEvent(XEvent *X, enum HandleEventResult *result)
return 0;
}
pWin = nxagentWindowPtr(X -> xclient.window);
WindowPtr pWin = nxagentWindowPtr(X -> xclient.window);
if (pWin == NULL)
{
......@@ -2886,7 +2881,6 @@ int nxagentHandleXkbKeyboardStateEvent(XEvent *X)
int nxagentHandleXFixesSelectionNotify(XEvent *X)
{
int i;
Atom local;
XFixesSelectionEvent *xfixesEvent = (XFixesSelectionEvent *) X;
......@@ -2915,7 +2909,7 @@ int nxagentHandleXFixesSelectionNotify(XEvent *X)
if (SelectionCallback)
{
i = 0;
int i = 0;
while ((i < NumCurrentSelections) &&
CurrentSelections[i].selection != local)
......@@ -4011,21 +4005,23 @@ void nxagentDeactivatePointerGrab(void)
if (grab)
{
XButtonEvent X;
memset(&X, 0, sizeof(XButtonEvent));
X.type = ButtonRelease;
X.serial = 0;
X.send_event = FALSE;
X.time = currentTime.milliseconds;
X.display = nxagentDisplay;
X.window = nxagentWindow(grab -> window);
X.root = RootWindow(nxagentDisplay, 0);
X.subwindow = 0;
X.x = X.y = X.x_root = X.y_root = 0;
X.state = 0x100;
X.button = 1;
X.same_screen = TRUE;
XButtonEvent X = {
.type = ButtonRelease,
.serial = 0,
.send_event = FALSE,
.time = currentTime.milliseconds,
.display = nxagentDisplay,
.window = nxagentWindow(grab -> window),
.root = RootWindow(nxagentDisplay, 0),
.subwindow = 0,
.x = 0,
.y = 0,
.x_root = 0,
.y_root = 0,
.state = 0x100,
.button = 1,
.same_screen = TRUE,
};
XPutBackEvent(nxagentDisplay, (XEvent*)&X);
}
......
......@@ -98,13 +98,12 @@ void nxagentInitGlxExtension(VisualPtr *visuals, DepthPtr *depths,
int *numVisuals, int *numDepths, int *rootDepth,
VisualID *defaultVisual)
{
miInitVisualsProcPtr initVisuals;
/*
* Initialize the visuals to use the GLX extension.
*/
initVisuals = NULL;
miInitVisualsProcPtr initVisuals = NULL;
GlxWrapInitVisuals(&initVisuals);
......@@ -372,15 +371,13 @@ static int nxagentRandRInitSizes(ScreenPtr pScreen)
int nxagentRandRSetConfig(ScreenPtr pScreen, Rotation rotation,
int rate, RRScreenSizePtr pSize)
{
int r;
UpdateCurrentTime();
/*
* Whatever size is OK for us.
*/
r = nxagentResizeScreen(pScreen, pSize -> width, pSize -> height,
int r = nxagentResizeScreen(pScreen, pSize -> width, pSize -> height,
pSize -> mmWidth, pSize -> mmHeight);
nxagentMoveViewport(pScreen, 0, 0);
......@@ -430,8 +427,6 @@ void nxagentRandRSetWindowsSize(int width, int height)
int nxagentRandRScreenSetSize(ScreenPtr pScreen, CARD16 width, CARD16 height,
CARD32 mmWidth, CARD32 mmHeight)
{
int result;
UpdateCurrentTime();
if (nxagentOption(DesktopResize) == 1 &&
......@@ -453,7 +448,7 @@ int nxagentRandRScreenSetSize(ScreenPtr pScreen, CARD16 width, CARD16 height,
nxagentChangeOption(Height, height);
}
result = nxagentResizeScreen(pScreen, width, height, mmWidth, mmHeight);
int result = nxagentResizeScreen(pScreen, width, height, mmWidth, mmHeight);
if (result == 1 && nxagentOption(DesktopResize) == 1 &&
nxagentOption(Fullscreen) == 0 && nxagentOption(AllScreens) == 0)
......
......@@ -165,8 +165,6 @@ static struct _nxagentFailedToReconnectFonts
void nxagentFreeFontCache(void)
{
int i;
#ifdef NXAGENT_FONTCACHE_DEBUG
fprintf(stderr, "Font: Freeing nxagent font cache\n");
#endif
......@@ -178,7 +176,7 @@ void nxagentFreeFontCache(void)
fprintf(stderr, "Font: Freeing nxagent font cache, there are [%d] entries.\n", CACHE_INDEX);
#endif
for (i = 0; i < CACHE_INDEX; i++)
for (int i = 0; i < CACHE_INDEX; i++)
{
#ifdef NXAGENT_FONTCACHE_DEBUG
fprintf(stderr, "Font: Freeing nxagent font cache entry [%d] entry pointer is [%p], name [%s]\n",
......@@ -208,8 +206,6 @@ void nxagentFreeFontCache(void)
void nxagentListRemoteFonts(const char *searchPattern, const int maxNames)
{
int i, q, p;
char **xList;
int xLen = 0;
......@@ -241,7 +237,7 @@ void nxagentListRemoteFonts(const char *searchPattern, const int maxNames)
* other one will select the 'real' fonts.
*/
for (p = 0; p < patternsQt; p++)
for (int p = 0; p < patternsQt; p++)
{
xList = XListFonts(nxagentDisplay, patterns[p], maxNames, &xLen);
......@@ -256,11 +252,9 @@ void nxagentListRemoteFonts(const char *searchPattern, const int maxNames)
nxagentListRemoteAddName(searchPattern, maxNames);
for (i = 0; i < xLen; i++)
for (int i = 0; i < xLen; i++)
{
q = 1;
nxagentListRemoteAddName(xList[i], q);
nxagentListRemoteAddName(xList[i], 1);
}
XFreeFontNames(xList);
......@@ -270,7 +264,7 @@ void nxagentListRemoteFonts(const char *searchPattern, const int maxNames)
fprintf(stderr, "nxagentListRemoteFonts: Printing remote font list.\n");
for (i = 0; i < nxagentRemoteFontList.length; i++)
for (int i = 0; i < nxagentRemoteFontList.length; i++)
{
fprintf(stderr, "Font# %d, \"%s\"\n", i, nxagentRemoteFontList.list[i]->name);
}
......@@ -353,9 +347,7 @@ void nxagentListRemoteAddName(const char *name, int status)
static void nxagentFreeRemoteFontList(nxagentFontList *listRec)
{
int l;
for (l = 0; l < listRec -> length; l++)
for (int l = 0; l < listRec -> length; l++)
{
if (listRec -> list[l])
{
......@@ -377,18 +369,16 @@ static void nxagentFreeRemoteFontList(nxagentFontList *listRec)
Bool nxagentFontFind(const char *name, int *pos)
{
int low,high,res,iter,lpos;
if (!nxagentRemoteFontList.length)
{
*pos=0;
return False;
}
low = 0;
high = nxagentRemoteFontList.length - 1;
iter = 0;
res = 1;
lpos = nxagentRemoteFontList.length;
int low = 0;
int high = nxagentRemoteFontList.length - 1;
int iter = 0;
int res = 1;
int lpos = nxagentRemoteFontList.length;
while (low <= high)
{
*pos = (high + low)/2;
......@@ -424,18 +414,15 @@ Bool nxagentFontFind(const char *name, int *pos)
Bool nxagentFontLookUp(const char *name)
{
int i;
int result;
char *scalable;
if (name != NULL && strlen(name) == 0)
{
return 0;
}
result = nxagentFontFind(name, &i);
int result = nxagentFontFind(name, &i);
scalable = NULL;
char *scalable = NULL;
/*
* Let's try with the scalable font description.
......@@ -443,9 +430,7 @@ Bool nxagentFontLookUp(const char *name)
if (result == 0)
{
scalable = nxagentMakeScalableFontName(name, 0);
if (scalable != NULL)
if ((scalable = nxagentMakeScalableFontName(name, 0)) != NULL)
{
result = nxagentFontFind(scalable, &i);
......@@ -459,9 +444,7 @@ Bool nxagentFontLookUp(const char *name)
if (result == 0)
{
scalable = nxagentMakeScalableFontName(name, 1);
if (scalable != NULL)
if ((scalable = nxagentMakeScalableFontName(name, 1)) != NULL)
{
result = nxagentFontFind(scalable, &i);
......@@ -857,7 +840,6 @@ static void nxagentFontDisconnect(FontPtr pFont, XID param1, void * param2)
{
nxagentPrivFont *privFont;
Bool *pBool = (Bool*)param2;
int i;
if (pFont == NULL || !*pBool)
return;
......@@ -869,7 +851,7 @@ static void nxagentFontDisconnect(FontPtr pFont, XID param1, void * param2)
(void *) pFont, privFont -> font_struct ? nxagentFont(pFont) : 0);
#endif
for (i = 0; i < CACHE_INDEX; i++)
for (int i = 0; i < CACHE_INDEX; i++)
{
if (strcasecmp(CACHE_NAME(i), privFont -> fontName) == 0)
{
......@@ -897,7 +879,6 @@ static void nxagentFontDisconnect(FontPtr pFont, XID param1, void * param2)
static void nxagentCollectFailedFont(FontPtr fpt, XID id)
{
if (nxagentFailedToReconnectFonts.font == NULL)
{
nxagentFailedToReconnectFonts.size = 8;
......@@ -1043,13 +1024,11 @@ static void nxagentFontReconnect(FontPtr pFont, XID param1, void * param2)
static void nxagentFreeCacheBeforeReconnect(void)
{
int i;
#ifdef NXAGENT_RECONNECT_FONT_DEBUG
printFontCacheDump("nxagentFreeCacheBeforeReconnect");
#endif
for (i = 0; i < CACHE_INDEX; i++)
for (int i = 0; i < CACHE_INDEX; i++)
{
if (CACHE_FSTRUCT(i))
{
......@@ -1061,15 +1040,13 @@ static void nxagentFreeCacheBeforeReconnect(void)
static void nxagentCleanCacheAfterReconnect(void)
{
int i, j;
int real_size = CACHE_INDEX;
nxCacheFontEntryRecPtr swapEntryPtr;
#ifdef NXAGENT_RECONNECT_FONT_DEBUG
printFontCacheDump("nxagentCleanCacheAfterReconnect");
#endif
for (i = 0; i < CACHE_INDEX; i++)
for (int i = 0; i < CACHE_INDEX; i++)
{
if(CACHE_FSTRUCT(i) == NULL)
{
......@@ -1078,8 +1055,11 @@ static void nxagentCleanCacheAfterReconnect(void)
}
}
for (i = 0; i < real_size; i++)
for (int i = 0; i < real_size; i++)
{
int j;
nxCacheFontEntryRecPtr swapEntryPtr;
/* Find - first bad occurrence if exist. */
while ((i < real_size) && CACHE_FSTRUCT(i)) i++;
......@@ -1108,11 +1088,9 @@ static void nxagentCleanCacheAfterReconnect(void)
#ifdef NXAGENT_RECONNECT_FONT_DEBUG
static void printFontCacheDump(char* msg)
{
int i;
fprintf(stderr, "%s - begin -\n", msg);
for (i = 0; i < CACHE_INDEX; i++)
for (int i = 0; i < CACHE_INDEX; i++)
{
if (CACHE_FSTRUCT(i))
{
......@@ -1129,7 +1107,6 @@ static void printFontCacheDump(char* msg)
Bool nxagentReconnectAllFonts(void *p0)
{
int cid;
Bool fontSuccess = True;
reconnectFlexibility = *((int *) p0);
......@@ -1147,7 +1124,7 @@ Bool nxagentReconnectAllFonts(void *p0)
FindClientResourcesByType(clients[serverClient -> index], RT_NX_FONT,
(FindResType) nxagentFontReconnect, &fontSuccess);
for (cid = 0; cid < MAXCLIENTS; cid++)
for (int cid = 0; cid < MAXCLIENTS; cid++)
{
if (clients[cid])
{
......@@ -1258,7 +1235,6 @@ static void nxagentFreeFailedToReconnectFonts(void)
Bool nxagentReconnectFailedFonts(void *p0)
{
int i;
int attempt = 1;
const int maxAttempt = 5;
......@@ -1312,7 +1288,7 @@ Bool nxagentReconnectFailedFonts(void *p0)
nxagentFreeRemoteFontList(&nxagentRemoteFontList);
nxagentListRemoteFonts("*", nxagentMaxFontNames);
for(i = 0; i < nxagentFailedToReconnectFonts.index; i++)
for(int i = 0; i < nxagentFailedToReconnectFonts.index; i++)
{
fontSuccess = True;
......@@ -1365,7 +1341,6 @@ Bool nxagentReconnectFailedFonts(void *p0)
Bool nxagentDisconnectAllFonts(void)
{
int cid;
Bool fontSuccess = True;
#if defined(NXAGENT_RECONNECT_DEBUG) || defined(NXAGENT_RECONNECT_FONT_DEBUG)
......@@ -1384,7 +1359,7 @@ Bool nxagentDisconnectAllFonts(void)
FindClientResourcesByType(clients[serverClient -> index], RT_NX_FONT,
(FindResType) nxagentFontDisconnect, &fontSuccess);
for(cid = 0; cid < MAXCLIENTS; cid++)
for(int cid = 0; cid < MAXCLIENTS; cid++)
{
if( clients[cid] && fontSuccess )
{
......@@ -1647,7 +1622,6 @@ XFontStruct* nxagentLoadQueryFont(register Display *dpy, char *name, FontPtr pFo
int nxagentFreeFont(XFontStruct *fs)
{
if (fs -> per_char)
{
#ifdef USE_XF86BIGFONT
......
......@@ -553,10 +553,11 @@ void nxagentChangeKeyboardControl(DeviceIntPtr pDev, KeybdCtrl *ctrl)
value_mask = KBLed | KBLedMode;
for (int i = 1; i <= 32; i++)
for (int i = 1; i <= XkbNumIndicators; i++)
{
unsigned int mask = (unsigned int)1 << (i - 1);
values.led = i;
values.led_mode = (ctrl->leds & (1 << (i - 1))) ? LedModeOn : LedModeOff;
values.led_mode = (ctrl->leds & mask) ? LedModeOn : LedModeOff;
XChangeKeyboardControl(nxagentDisplay, value_mask, &values);
}
......@@ -945,6 +946,10 @@ XkbError:
{
NXShadowInitKeymap(&(pDev->key->curKeySyms));
}
free(rules);
free(variant);
free(options);
}
if (xkb)
......@@ -1025,11 +1030,18 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio
break;
case DEVICE_CLOSE:
#ifdef TEST
fprintf(stderr, "nxagentKeyboardProc: Called for [DEVICE_CLOSE].\n");
#endif
for (int i = 0; i < pDev->nPrivates; i++)
{
free(pDev->devPrivates[i].ptr);
pDev->devPrivates[i].ptr = NULL;
}
free(pDev->devPrivates);
pDev->devPrivates = NULL;
break;
}
......@@ -1292,8 +1304,6 @@ static int nxagentRestoreKeyboardDeviceData(DeviceIntPtr devBackup, DeviceIntPtr
static int nxagentFreeKeyboardDeviceData(DeviceIntPtr dev)
{
KbdFeedbackPtr k, knext;
if (!dev)
{
#ifdef PANIC
......@@ -1327,14 +1337,18 @@ static int nxagentFreeKeyboardDeviceData(DeviceIntPtr dev)
dev->focus = NULL;
}
for (k = dev->kbdfeed; k; k = knext)
if (dev->kbdfeed)
{
knext = k->next;
#ifdef XKB
if (k->xkb_sli)
XkbFreeSrvLedInfo(k->xkb_sli);
#endif
free(k);
for (KbdFeedbackPtr k = dev->kbdfeed, knext; k; k = knext)
{
knext = k->next;
#ifdef XKB
if (k->xkb_sli)
XkbFreeSrvLedInfo(k->xkb_sli);
#endif
free(k);
}
dev->kbdfeed = NULL;
}
#ifdef DEBUG
......@@ -1683,7 +1697,10 @@ static char* getKeyboardFilePath(void)
free(sessionpath);
FatalError("malloc for keyboard file path failed.");
}
free(sessionpath);
else
{
free(sessionpath);
}
}
else
{
......
......@@ -1216,7 +1216,7 @@ nxdoListFontsAndAliases(client, fss)
if (c->savedName)
{
memcpy(tmp,c->savedName,c->savedNameLen>255?255:c->savedNameLen);
tmp[c->savedNameLen>255?256:c->savedNameLen]=0;
tmp[c->savedNameLen>255?255:c->savedNameLen]=0;
if (nxagentFontLookUp(tmp))
break;
else tmp[0]=0;
......@@ -1225,7 +1225,7 @@ nxdoListFontsAndAliases(client, fss)
else
{
memcpy(tmp,name,namelen>255?255:namelen);
tmp[namelen>255?256:namelen]=0;
tmp[namelen>255?255:namelen]=0;
if (nxagentFontLookUp(tmp))
break;
else tmp[0]=0;
......
......@@ -367,10 +367,8 @@ XYToWindow(int x, int y)
if (spriteTraceGood >= spriteTraceSize)
{
spriteTraceSize += 10;
Must_have_memory = TRUE; /* XXX */
spriteTrace = (WindowPtr *)realloc(
spriteTrace = realloc(
spriteTrace, spriteTraceSize*sizeof(WindowPtr));
Must_have_memory = FALSE; /* XXX */
}
spriteTrace[spriteTraceGood++] = pWin;
pWin = pWin->firstChild;
......
......@@ -59,6 +59,67 @@
#endif
GlyphRefPtr
FindGlyphRef (GlyphHashPtr hash, CARD32 signature, Bool match, GlyphPtr compare)
{
CARD32 elt, step, s;
GlyphPtr glyph;
GlyphRefPtr table, gr, del;
CARD32 tableSize = hash->hashSet->size;
table = hash->table;
elt = signature % tableSize;
step = 0;
del = 0;
for (;;)
{
gr = &table[elt];
s = gr->signature;
glyph = gr->glyph;
if (!glyph)
{
if (del)
gr = del;
break;
}
if (glyph == DeletedGlyph)
{
if (!del)
del = gr;
else if (gr == del)
break;
}
#ifdef NXAGENT_SERVER
else if (s == signature && match && glyph->size != compare->size)
{
/*
* if the glyphsize is different there's no need to do a memcmp
* because it will surely report difference. And even worse:
* it will read beyond the end of glyph under some
* circumstances, which can be detected when compiling with
* -fsanitize=address.
*/
}
#endif
else if (s == signature &&
(!match ||
memcmp (&compare->info, &glyph->info, compare->size) == 0))
{
break;
}
if (!step)
{
step = signature % hash->hashSet->rehash;
if (!step)
step = 1;
}
elt += step;
if (elt >= tableSize)
elt -= tableSize;
}
return gr;
}
void
AddGlyph (GlyphSetPtr glyphSet, GlyphPtr glyph, Glyph id)
{
......@@ -138,12 +199,6 @@ ResizeGlyphHash (GlyphHashPtr hash, CARD32 change, Bool global)
int oldSize;
CARD32 s;
#ifdef NXAGENT_SERVER
CARD32 c;
#endif
tableEntries = hash->tableEntries + change;
hashSet = FindGlyphHashSet (tableEntries);
if (hashSet == hash->hashSet)
......@@ -164,7 +219,7 @@ ResizeGlyphHash (GlyphHashPtr hash, CARD32 change, Bool global)
#ifdef NXAGENT_SERVER
c = hash->table[i].corruptedGlyph;
CARD32 c = hash->table[i].corruptedGlyph;
#endif
......
......@@ -303,33 +303,25 @@ CreateSolidPicture (Picture pid, xRenderColor *color, int *error)
static PicturePtr createSourcePicture(void)
{
PicturePtr pPicture;
extern int nxagentPicturePrivateIndex;
unsigned int totalPictureSize;
DevUnion *ppriv;
char *privPictureRecAddr;
int i;
/*
* Compute size of entire PictureRect, plus privates.
*/
totalPictureSize = sizeof(PictureRec) +
unsigned int totalPictureSize = sizeof(PictureRec) +
picturePrivateCount * sizeof(DevUnion) +
sizeof(nxagentPrivPictureRec);
pPicture = (PicturePtr) calloc(1, totalPictureSize);
PicturePtr pPicture = (PicturePtr) calloc(1, totalPictureSize);
if (!pPicture)
return 0;
if (pPicture != NULL)
{
ppriv = (DevUnion *) (pPicture + 1);
DevUnion *ppriv = (DevUnion *) (pPicture + 1);
for (i = 0; i < picturePrivateCount; ++i)
for (int i = 0; i < picturePrivateCount; ++i)
{
/*
* Other privates are inaccessible.
......@@ -338,7 +330,7 @@ static PicturePtr createSourcePicture(void)
ppriv[i].ptr = NULL;
}
privPictureRecAddr = (char *) &ppriv[picturePrivateCount];
char *privPictureRecAddr = (char *) &ppriv[picturePrivateCount];
ppriv[nxagentPicturePrivateIndex].ptr = (void *) privPictureRecAddr;
......
......@@ -1004,7 +1004,11 @@ ProcRenderCompositeGlyphs (ClientPtr client)
elementsBase = malloc(nlist * sizeof(XGlyphElt8));
if (!elementsBase)
return BadAlloc;
{
free(glyphsBase);
free(listsBase);
return BadAlloc;
}
buffer = (CARD8 *) (stuff + 1);
glyphs = glyphsBase;
......
......@@ -387,8 +387,8 @@ ProcShmPutImage(client)
((stuff->format != ZPixmap) &&
(stuff->srcX < screenInfo.bitmapScanlinePad) &&
((stuff->format == XYBitmap) ||
- ((stuff->srcY == 0) &&
- (stuff->srcHeight == stuff->totalHeight))))) &&
((stuff->srcY == 0) &&
(stuff->srcHeight == stuff->totalHeight))))) &&
((stuff->srcX + stuff->srcWidth) == stuff->totalWidth))
(*pGC->ops->PutImage) (pDraw, pGC, stuff->depth,
stuff->dstX, stuff->dstY,
......@@ -396,7 +396,7 @@ ProcShmPutImage(client)
stuff->srcX, stuff->format,
shmdesc->addr + stuff->offset +
(stuff->srcY * length));
- else
else
#endif
{
#ifdef TEST
......
......@@ -296,7 +296,7 @@ InitRootWindow(WindowPtr pWin)
#ifdef NXAGENT_ARTSD
{
char artsd_port[10];
int nPort;
short int nPort;
extern void nxagentPropagateArtsdProperties(ScreenPtr pScreen, char *port);
nPort = atoi(display) + 7000;
sprintf(artsd_port,"%d", nPort);
......
......@@ -700,7 +700,6 @@ static void nxagentPixmapMatchID(void *p0, XID x1, void *p2)
PixmapPtr nxagentPixmapPtr(Pixmap pixmap)
{
int i;
struct nxagentPixmapPair pair;
if (pixmap == None)
......@@ -714,7 +713,7 @@ PixmapPtr nxagentPixmapPtr(Pixmap pixmap)
FindClientResourcesByType(clients[serverClient -> index], RT_NX_PIXMAP,
nxagentPixmapMatchID, &pair);
for (i = 0; (pair.pMap == NULL) && (i < MAXCLIENTS); i++)
for (int i = 0; (pair.pMap == NULL) && (i < MAXCLIENTS); i++)
{
if (clients[i])
{
......@@ -790,8 +789,8 @@ void nxagentDisconnectPixmap(void *p0, XID x1, void *p2)
Bool nxagentDisconnectAllPixmaps(void)
{
int r = 1;
int i;
int r = 1;
#ifdef TEST
fprintf(stderr, "nxagentDisconnectAllPixmaps: Going to iterate through pixmap resources.\n");
......@@ -958,8 +957,6 @@ Bool nxagentReconnectAllPixmaps(void *p0)
{
Bool result = 1;
int i;
#ifdef TEST
fprintf(stderr, "nxagentReconnectAllPixmaps: Going to recreate all pixmaps.\n");
#endif
......@@ -991,7 +988,7 @@ Bool nxagentReconnectAllPixmaps(void *p0)
#endif
for (i = 0, result = 1; i < MAXCLIENTS; result = 1, i++)
for (int i = 0, result = 1; i < MAXCLIENTS; result = 1, i++)
{
if (clients[i] != NULL)
{
......@@ -1138,10 +1135,9 @@ Bool nxagentCheckPixmapIntegrity(PixmapPtr pPixmap)
if (!integrity)
{
int i;
char *p, *q;
for (i = 0, p = image -> data, q = data; i < length; i++)
for (int i = 0, p = image -> data, q = data; i < length; i++)
{
if (p[i] != q[i])
{
......@@ -1187,7 +1183,6 @@ Bool nxagentCheckPixmapIntegrity(PixmapPtr pPixmap)
Bool nxagentCheckAllPixmapIntegrity(void)
{
int i;
Bool imageIsGood = True;
#ifdef TEST
......@@ -1197,7 +1192,7 @@ Bool nxagentCheckAllPixmapIntegrity(void)
FindClientResourcesByType(clients[serverClient -> index], RT_NX_PIXMAP,
nxagentCheckOnePixmapIntegrity, &imageIsGood);
for (i = 0; (i < MAXCLIENTS) && (imageIsGood); i++)
for (int i = 0; (i < MAXCLIENTS) && (imageIsGood); i++)
{
if (clients[i])
{
......@@ -1355,7 +1350,7 @@ Bool nxagentPixmapOnShadowDisplay(PixmapPtr pMap)
/*
FIXME: If the pixmap has a different depth from the window, the
XPutImage returns a BadMatch. For example this may happens if
XPutImage returns a BadMatch. For example this may happen if
the Render extension is enabled.
Can we fix this creating a new pixmap?
*/
......@@ -1372,7 +1367,7 @@ FIXME: If the pixmap has a different depth from the window, the
/*
* If the framebuffer is updated continuously, the nxagent
* visualization become too much slow.
* visualization becomes much too slow.
*/
if ((GetTimeInMillis() - showTime) < 500)
......@@ -1630,11 +1625,10 @@ void nxagentPrintResourcePredicate(void *value, XID id, XID type, void *cdata)
void nxagentPrintResources(void)
{
Bool result;
int i;
nxagentPrintResourceTypes();
for (i = 0; i < MAXCLIENTS; i++)
for (int i = 0; i < MAXCLIENTS; i++)
{
if (clients[i])
{
......
......@@ -40,7 +40,7 @@ is" without express or implied warranty.
#include "X.h"
#include "Xproto.h"
#include "screenint.h"
#include "input.h"
#include "inputstr.h"
#include "misc.h"
#include "scrnintstr.h"
#include "servermd.h"
......@@ -162,11 +162,18 @@ int nxagentPointerProc(DeviceIntPtr pDev, int onoff)
break;
case DEVICE_CLOSE:
#ifdef TEST
fprintf(stderr, "nxagentPointerProc: Called for [DEVICE_CLOSE].\n");
#endif
for (int i = 0; i < pDev->nPrivates; i++)
{
free(pDev->devPrivates[i].ptr);
pDev->devPrivates[i].ptr = NULL;
}
free(pDev->devPrivates);
pDev->devPrivates = NULL;
break;
}
......
......@@ -844,6 +844,19 @@ static int nxagentColorOffset(unsigned long mask)
return count;
}
void freeDepths(DepthPtr depths, int num)
{
for (int i = 0; i < num; i++)
{
#ifdef DEBUG
fprintf(stderr, "%s: freeing depth [%d] index [%d] vids [%p]\n", __func__, depths[i].depth, i, (void*) depths[i].vids);
#endif
free(depths[i].vids);
depths[i].vids = NULL;
}
free(depths);
}
Bool nxagentOpenScreen(ScreenPtr pScreen,
int argc, char *argv[])
{
......@@ -1335,6 +1348,8 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
if (!pFrameBufferBits)
{
freeDepths(depths, numDepths);
free(visuals);
return FALSE;
}
......@@ -1356,6 +1371,8 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
if (!fbScreenInit(pScreen, pFrameBufferBits, nxagentOption(RootWidth), nxagentOption(RootHeight),
monitorResolution, monitorResolution, PixmapBytePad(nxagentOption(RootWidth), rootDepth), bitsPerPixel))
{
freeDepths(depths, numDepths);
free(visuals);
return FALSE;
}
......@@ -1391,22 +1408,15 @@ Bool nxagentOpenScreen(ScreenPtr pScreen,
* by fbScreenInit with our own.
*/
free(pScreen -> visuals);
free(pScreen -> allowedDepths);
pScreen -> visuals = visuals;
freeDepths(pScreen->allowedDepths, pScreen->numDepths);
pScreen -> allowedDepths = depths;
pScreen -> numVisuals = numVisuals;
pScreen -> numDepths = numDepths;
pScreen -> rootVisual = defaultVisual;
pScreen -> rootDepth = rootDepth;
/*
* Complete the initialization of the RANDR
* extension.
*/
nxagentInitRandRExtension(pScreen);
free(pScreen -> visuals);
pScreen -> visuals = visuals;
pScreen -> numVisuals = numVisuals;
pScreen -> rootVisual = defaultVisual;
/*
* Set up the internal structures used for
......@@ -1694,6 +1704,13 @@ N/A
nxagentOption(Height)) / 32)
}
/*
* Complete the initialization of the RANDR
* extension.
*/
nxagentInitRandRExtension(pScreen);
#ifdef TEST
nxagentPrintAgentGeometry(NULL, "nxagentOpenScreen:");
#endif
......@@ -2135,26 +2152,31 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio
Bool nxagentCloseScreen(ScreenPtr pScreen)
{
int i;
#ifdef DEBUG
fprintf(stderr, "running nxagentCloseScreen()\n");
#endif
for (i = 0; i < pScreen->numDepths; i++)
{
free(pScreen->allowedDepths[i].vids);
}
/*
* We have called fbScreenInit() in nxagenOpenScreen, which in turn
* called fbOpenScreen. But we are not using the data as created by
* fbOpenScreen but have freed it and replaced by our own. So we free
* our own stuff here and take care that fbCloseScreen will not free
* them again.
*/
freeDepths(pScreen->allowedDepths, pScreen->numDepths);
pScreen->allowedDepths = NULL;
pScreen->numDepths = 0;
/*
* Free the frame buffer.
*/
free(((PixmapPtr)pScreen -> devPrivate) -> devPrivate.ptr);
free(pScreen->devPrivate);pScreen->devPrivate = NULL;
free(pScreen->visuals); pScreen->visuals = NULL;
free(pScreen->allowedDepths);
free(pScreen->visuals);
free(pScreen->devPrivate);
fbCloseScreen(pScreen);
/*
* Reset the geometry and alpha information
......
......@@ -727,7 +727,7 @@ Bool nxagentPositionWindow(WindowPtr pWin, int x, int y)
(void *) pWin, nxagentWindow(pWin), x, y);
#endif
nxagentAddConfiguredWindow(pWin, CWParent | CWX | CWY | CWWidth |
nxagentAddConfiguredWindow(pWin, CWSibling | CWX | CWY | CWWidth |
CWHeight | CWBorderWidth);
return True;
......@@ -1284,7 +1284,7 @@ void nxagentConfigureWindow(WindowPtr pWin, unsigned int mask)
{
if (mask & CW_RootlessRestack)
{
mask = CWStackingOrder;
mask = CWStackMode;
}
}
......@@ -1299,7 +1299,7 @@ void nxagentConfigureWindow(WindowPtr pWin, unsigned int mask)
if (mask & CW_Update)
{
mask |= CWX | CWY | CWWidth | CWHeight | CWBorderWidth | CWStackingOrder;
mask |= CWX | CWY | CWWidth | CWHeight | CWBorderWidth | CWStackMode;
}
if (mask & CWX)
......@@ -1378,7 +1378,7 @@ void nxagentConfigureWindow(WindowPtr pWin, unsigned int mask)
MAKE_SYNC_CONFIGURE_WINDOW;
}
if (mask & CWStackingOrder &&
if (mask & CWStackMode &&
nxagentWindowPriv(pWin)->siblingAbove != nxagentWindowSiblingAbove(pWin))
{
WindowPtr pSib;
......@@ -1478,7 +1478,7 @@ void nxagentConfigureWindow(WindowPtr pWin, unsigned int mask)
* really needed?
*
*
* else if (mask & CWStackingOrder)
* else if (mask & CWStackMode)
* {
* if (nxagentSplashWindow)
* {
......@@ -1920,12 +1920,12 @@ Bool nxagentRealizeWindow(WindowPtr pWin)
/*
* Not needed.
*
* nxagentConfigureWindow(pWin, CWStackingOrder);
* nxagentConfigureWindow(pWin, CWStackMode);
*
* nxagentFlushConfigureWindow();
*/
nxagentAddConfiguredWindow(pWin, CWStackingOrder);
nxagentAddConfiguredWindow(pWin, CWStackMode);
nxagentAddConfiguredWindow(pWin, CW_Shape);
/* add by dimbor */
......@@ -1942,20 +1942,6 @@ Bool nxagentRealizeWindow(WindowPtr pWin)
#endif
*/
/*
* Mapping of the root window is called by
* InitRootWindow in DIX. Skip the operation
* if we are in rootless mode.
*/
/*
* if (!nxagentOption(Rootless) ||
* nxagentRootlessWindow != pWin)
* {
* XMapWindow(nxagentDisplay, nxagentWindow(pWin));
* }
*/
#ifdef TEST
if (nxagentOption(Rootless) && nxagentLastWindowDestroyed)
{
......@@ -2130,10 +2116,10 @@ void nxagentCopyWindow(WindowPtr pWin, xPoint oldOrigin, RegionPtr oldRegion)
void nxagentClipNotify(WindowPtr pWin, int dx, int dy)
{
/*
* nxagentConfigureWindow(pWin, CWStackingOrder);
* nxagentConfigureWindow(pWin, CWStackMode);
*/
nxagentAddConfiguredWindow(pWin, CWStackingOrder);
nxagentAddConfiguredWindow(pWin, CWStackMode);
nxagentAddConfiguredWindow(pWin, CW_Shape);
#ifndef NXAGENT_SHAPE
......@@ -3484,6 +3470,12 @@ void nxagentSetTopLevelEventMask(WindowPtr pWin)
}
/*
* Run nxagentConfigureWindow() on all windows in
* nxagentConfiguredWindowList and move them from the list
* afterwards. The list will be empty then.
*
* This is also taking care of entries in nxagentExposeQueue that need
* to be synchronized with the real X server.
*/
void nxagentFlushConfigureWindow(void)
{
......@@ -3586,10 +3578,10 @@ void nxagentAddConfiguredWindow(WindowPtr pWin, unsigned int valuemask)
{
unsigned int mask;
mask = valuemask & (CWParent | CWX | CWY | CWWidth | CWHeight |
CWBorderWidth | CWStackingOrder | CW_Map | CW_Update | CW_Shape);
mask = valuemask & (CWSibling | CWX | CWY | CWWidth | CWHeight |
CWBorderWidth | CWStackMode | CW_Map | CW_Update | CW_Shape);
valuemask &= ~(CWParent | CWX | CWY | CWWidth | CWHeight | CWBorderWidth | CWStackingOrder);
valuemask &= ~(CWSibling | CWX | CWY | CWWidth | CWHeight | CWBorderWidth | CWStackMode);
if (mask & CWX &&
nxagentWindowPriv(pWin)->x !=
......@@ -3626,11 +3618,11 @@ void nxagentAddConfiguredWindow(WindowPtr pWin, unsigned int valuemask)
valuemask |= CWBorderWidth;
}
if (mask & CWStackingOrder &&
if (mask & CWStackMode &&
nxagentWindowPriv(pWin)->siblingAbove !=
nxagentWindowSiblingAbove(pWin))
{
valuemask |= CWStackingOrder;
valuemask |= CWStackMode;
}
{
......@@ -3952,16 +3944,16 @@ int nxagentEmptyBSPixmapList(void)
StoringPixmapPtr nxagentFindItemBSPixmapList(unsigned long pixmapId)
{
int i;
for (i = 0; i < BSPIXMAPLIMIT; i++)
for (int i = 0; i < BSPIXMAPLIMIT; i++)
{
if ((nxagentBSPixmapList[i] != NULL) &&
(nxagentBSPixmapList[i] -> storingPixmapId == pixmapId))
{
#ifdef TEST
fprintf(stderr, "nxagentFindItemBSPixmapList: pixmapId [%lu].\n", pixmapId);
fprintf(stderr, "nxagentFindItemBSPixmapList: nxagentBSPixmapList[%d] -> storingPixmapId [%lu].\n",
fprintf(stderr, "%s: pixmapId [%lu].\n", __func__, pixmapId);
fprintf(stderr, "%s: nxagentBSPixmapList[%d] = [%p].\n", __func__,
i, (void *) nxagentBSPixmapList[i]);
fprintf(stderr, "%s: nxagentBSPixmapList[%d] -> storingPixmapId [%lu].\n", __func__,
i, nxagentBSPixmapList[i] -> storingPixmapId);
#endif
......@@ -3969,15 +3961,13 @@ StoringPixmapPtr nxagentFindItemBSPixmapList(unsigned long pixmapId)
}
}
#ifdef TEST
fprintf(stderr, "nxagentFindItemBSPixmapList: WARNING! Item not found.\n");
#ifdef WARNING
fprintf(stderr, "%s: WARNING! Item not found.\n", __func__);
#endif
#ifdef TEST
fprintf(stderr, "nxagentFindItemBSPixmapList: Pixmap with id [%lu] not found.\n",
fprintf(stderr, "%s: Pixmap with id [%lu] not found.\n", __func__,
pixmapId);
fprintf(stderr, "nxagentBSPixmapList[%d] = [%p].\n",
i, (void *) nxagentBSPixmapList[i]);
#endif
return NULL;
......
......@@ -159,9 +159,6 @@ extern int nxagentWindowPrivateIndex;
#define nxagentDefaultWindowIsVisible() \
(nxagentVisibility != VisibilityFullyObscured)
#define CWParent CWSibling
#define CWStackingOrder CWStackMode
#define CW_Map (1 << 15)
#define CW_Update (1 << 16)
#define CW_Shape (1 << 17)
......
......@@ -253,17 +253,6 @@ char *PngCompressData(XImage *image, int *compressed_size)
NXColorTable color_table[NB_COLOR_MAX];
CARD8 *image_index;
image_index = (CARD8 *) malloc((image -> height) * (image -> width) * sizeof(CARD8));
/*
* TODO: Be sure the padded bytes are cleaned.
* It would be better to set to zero the bytes
* that are not aligned to the word boundary
* at the end of the procedure.
*/
memset(image_index, 0, (image -> height) * (image -> width) * sizeof(CARD8));
*compressed_size = 0;
pngDataLen = 0;
......@@ -283,7 +272,6 @@ char *PngCompressData(XImage *image, int *compressed_size)
bitsPerPixel);
#endif
free(image_index);
return NULL;
}
......@@ -316,7 +304,6 @@ char *PngCompressData(XImage *image, int *compressed_size)
fprintf(stderr, "******PngCompressData: PANIC! Failed creating the png_create_write_struct.\n");
#endif
free(image_index);
return NULL;
}
......@@ -329,7 +316,6 @@ char *PngCompressData(XImage *image, int *compressed_size)
#endif
png_destroy_write_struct(&png_ptr, NULL);
free(image_index);
return NULL;
}
......@@ -341,7 +327,6 @@ char *PngCompressData(XImage *image, int *compressed_size)
#endif
png_destroy_write_struct(&png_ptr, &info_ptr);
free(image_index);
return NULL;
}
......@@ -364,8 +349,6 @@ char *PngCompressData(XImage *image, int *compressed_size)
PNG_DEST_SIZE(w, h));
#endif
free(image_index);
return NULL;
}
......@@ -383,6 +366,24 @@ char *PngCompressData(XImage *image, int *compressed_size)
return NULL;
}
image_index = (CARD8 *) calloc(1, (image -> height) * (image -> width) * sizeof(CARD8));
if (image_index == NULL)
{
#ifdef PANIC
fprintf(stderr, "******PngCompressData: PANIC! Could not alloc image_index.\n");
#endif
free(pngCompBuf);
return NULL;
}
/*
* TODO: Be sure the padded bytes are cleaned.
* It would be better to set to zero the bytes
* that are not aligned to the word boundary
* at the end of the procedure.
*/
png_set_compression_level(png_ptr, PNG_Z_LEVEL);
if (bitsPerPixel == 16)
......@@ -480,47 +481,23 @@ char *PngCompressData(XImage *image, int *compressed_size)
return NULL;
}
int count;
if (color_type == PNG_COLOR_TYPE_PALETTE)
{
srcBuf = (CARD8 *) malloc(w * sizeof(CARD8));
if (srcBuf == NULL)
{
#ifdef PANIC
fprintf(stderr, "******PngCompressData: PANIC! Cannot allocate [%d] bytes.\n",
(int) (w * sizeof(CARD8)));
#endif
free(image_index);
return NULL;
}
/*
* TODO: Be sure the padded bytes are cleaned.
* It would be better to set to zero the bytes
* that are not aligned to the word boundary
* at the end of the procedure.
*/
memset(srcBuf, 0, w * sizeof(CARD8));
count = w;
}
else
{
srcBuf = (CARD8 *) malloc(w * 3 * sizeof(CARD8));
/*
* TODO: See above.
*/
memset(srcBuf, 0, w * 3 * sizeof(CARD8));
count = 3 * w;
}
srcBuf = (CARD8 *) calloc(count, sizeof(CARD8));
if (srcBuf == NULL)
{
#ifdef PANIC
fprintf(stderr, "******PngCompressData: PANIC! Cannot allocate [%d] bytes.\n",
w * 3);
(int) (count * sizeof(CARD8)));
#endif
free(pngCompBuf);
......@@ -529,6 +506,13 @@ char *PngCompressData(XImage *image, int *compressed_size)
return NULL;
}
/*
* TODO: Be sure the padded bytes are cleaned.
* It would be better to set to zero the bytes
* that are not aligned to the word boundary
* at the end of the procedure.
*/
for (dy = 0; dy < h; dy++)
{
if (color_type == PNG_COLOR_TYPE_RGB)
......@@ -548,8 +532,8 @@ char *PngCompressData(XImage *image, int *compressed_size)
dy, h);
#endif
free(srcBuf);
free(image_index);
free(srcBuf); srcBuf = NULL;
free(image_index); image_index = NULL;
if (setjmp(png_jmpbuf(png_ptr)))
{
......
......@@ -20,7 +20,6 @@ extern int monitorResolution;
extern Bool loadableFonts;
extern int defaultColorVisualClass;
extern Bool Must_have_memory;
extern int GrabInProgress;
extern char *ConnectionInfo;
extern Bool noTestExtensions;
......
......@@ -53,8 +53,6 @@ SOFTWARE.
#include "misc.h"
#include "mi.h"
extern Bool Must_have_memory;
void
miRecolorCursor( pScr, pCurs, displayed)
ScreenPtr pScr;
......@@ -65,11 +63,9 @@ miRecolorCursor( pScr, pCurs, displayed)
* This is guaranteed to correct any color-dependent state which may have
* been bound up in private state created by RealizeCursor
*/
(* pScr->UnrealizeCursor)( pScr, pCurs);
Must_have_memory = TRUE; /* XXX */
(* pScr->RealizeCursor)( pScr, pCurs);
Must_have_memory = FALSE; /* XXX */
if ( displayed)
(* pScr->DisplayCursor)( pScr, pCurs);
pScr->UnrealizeCursor(pScr, pCurs);
pScr->RealizeCursor(pScr, pCurs);
if (displayed)
pScr->DisplayCursor(pScr, pCurs);
}
......@@ -151,7 +151,7 @@ miHandleExposures(pSrcDrawable, pDstDrawable,
the window background
*/
WindowPtr pSrcWin;
BoxRec expBox;
BoxRec expBox = { 0, };
Bool extents;
/* This prevents warning about pscr not being used. */
......@@ -757,7 +757,10 @@ int what;
if (screenContext[i] == (GCPtr)NULL)
{
if (!ResType && !(ResType = CreateNewResourceType(tossGC)))
{
free(prect);
return;
}
screenContext[i] = CreateGC((DrawablePtr)pWin, (BITS32) 0,
(XID *)NULL, &status);
if (!screenContext[i])
......
......@@ -68,11 +68,9 @@ miCreateGCOps(prototype)
{
GCOpsPtr ret;
/* XXX */ Must_have_memory = TRUE;
ret = (GCOpsPtr) malloc(sizeof(GCOps));
/* XXX */ Must_have_memory = FALSE;
ret = malloc(sizeof(GCOps));
if (!ret)
return 0;
return NULL;
*ret = *prototype;
ret->devPrivate.val = 1;
return ret;
......
......@@ -228,7 +228,6 @@ extern void GlxPushProvider(__GLXprovider *impl);
*/
#ifndef __DARWIN__
extern void GlxExtensionInit(void);
extern void GlxWrapInitVisuals(miInitVisualsProcPtr *);
#else
extern void DarwinGlxExtensionInit(void);
extern void DarwinGlxWrapInitVisuals(miInitVisualsProcPtr *);
......@@ -474,9 +473,7 @@ InitVisualWrap()
{
miResetInitVisuals();
#ifdef GLXEXT
#ifndef __DARWIN__
GlxWrapInitVisuals(&miInitVisualsProc);
#else
#ifdef __DARWIN__
DarwinGlxWrapInitVisuals(&miInitVisualsProc);
#endif
#endif
......
......@@ -1052,6 +1052,7 @@ miSetShape(pWin)
* pointer to the parent, so maybe doesn't change
* the attribute of the window itself. This is to
* be better investigated.
* Update: Red Hat fixed this bug the same way (BZ 676270).
*/
if (WasViewable && pOldClip)
......
......@@ -1348,6 +1348,7 @@ GetLocalClientCreds(ClientPtr client, LocalClientCredRec **lccp)
if (getpeerucred(fd, &peercred) < 0) {
FreeLocalClientCreds(lcc);
return -1;
}
lcc->euid = ucred_geteuid(peercred);
if (lcc->euid != -1)
lcc->fieldsSet |= LCC_UID_SET;
......
......@@ -257,8 +257,6 @@ Bool PanoramiXExtensionDisabledHack = FALSE;
int auditTrailLevel = 1;
Bool Must_have_memory = FALSE;
#if defined(SVR4) || defined(__linux__) || defined(CSRG_BASED)
#define HAS_SAVED_IDS_AND_SETEUID
#endif
......
......@@ -357,7 +357,8 @@ IntervalListCreateSet(RecordSetInterval *pIntervals, int nIntervals,
if (!prls) goto bailout;
prls->baseSet.ops = &IntervalListSetOperations;
}
memcpy(&prls[1], stackIntervals, nIntervals * sizeof(RecordSetInterval));
if (nIntervals > 0)
memcpy(&prls[1], stackIntervals, nIntervals * sizeof(RecordSetInterval));
prls->nIntervals = nIntervals;
bailout:
if (stackIntervals) free(stackIntervals);
......
......@@ -144,6 +144,7 @@ GlyphInit (ScreenPtr pScreen)
return TRUE;
}
#ifndef NXAGENT_SERVER
GlyphRefPtr
FindGlyphRef (GlyphHashPtr hash, CARD32 signature, Bool match, GlyphPtr compare)
{
......@@ -192,6 +193,7 @@ FindGlyphRef (GlyphHashPtr hash, CARD32 signature, Bool match, GlyphPtr compare)
}
return gr;
}
#endif
CARD32
HashGlyph (GlyphPtr glyph)
......
......@@ -979,6 +979,8 @@ static PicturePtr createSourcePicture(void)
{
PicturePtr pPicture;
pPicture = (PicturePtr) malloc(sizeof(PictureRec));
if (!pPicture)
return 0;
pPicture->pDrawable = 0;
pPicture->pFormat = 0;
pPicture->pNext = 0;
......
......@@ -37,12 +37,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <xkbsrv.h>
#include "xkbgeom.h"
#ifdef X_NOT_POSIX
#define Size_t unsigned int
#else
#define Size_t size_t
#endif
/***====================================================================***/
static void
......@@ -463,7 +457,7 @@ _XkbGeomAlloc( XPointer * old,
unsigned short * num,
unsigned short * total,
int num_new,
Size_t sz_elem)
size_t sz_elem)
{
if (num_new<1)
return Success;
......@@ -708,7 +702,8 @@ register XkbKeyAliasPtr alias;
for (i=0,alias=geom->key_aliases;i<geom->num_key_aliases;i++,alias++) {
if (strncmp(alias->alias,aliasStr,XkbKeyNameLength)==0) {
bzero(alias->real,XkbKeyNameLength);
strncpy(alias->real,realStr,XkbKeyNameLength);
memcpy(alias->real, realStr,
min(XkbKeyNameLength, strlen(realStr)));
return alias;
}
}
......@@ -718,8 +713,8 @@ register XkbKeyAliasPtr alias;
}
alias= &geom->key_aliases[geom->num_key_aliases];
bzero(alias,sizeof(XkbKeyAliasRec));
strncpy(alias->alias,aliasStr,XkbKeyNameLength);
strncpy(alias->real,realStr,XkbKeyNameLength);
memcpy(alias->alias, aliasStr, min(XkbKeyNameLength, strlen(aliasStr)));
memcpy(alias->real, realStr, min(XkbKeyNameLength, strlen(realStr)));
geom->num_key_aliases++;
return alias;
}
......@@ -936,8 +931,8 @@ Bool found;
if ((row->num_keys>=row->sz_keys)&&(_XkbAllocOverlayKeys(row,1)!=Success))
return NULL;
key= &row->keys[row->num_keys];
strncpy(key->under.name,under,XkbKeyNameLength);
strncpy(key->over.name,over,XkbKeyNameLength);
memcpy(key->under.name, under, min(XkbKeyNameLength, strlen(under)));
memcpy(key->over.name, over, min(XkbKeyNameLength, strlen(over)));
row->num_keys++;
return key;
}
......
......@@ -52,10 +52,8 @@ XkbClientMapPtr map;
((!XkbIsLegalKeycode(xkb->min_key_code))||
(!XkbIsLegalKeycode(xkb->max_key_code))||
(xkb->max_key_code<xkb->min_key_code))) {
#ifdef DEBUG
fprintf(stderr,"bad keycode (%d,%d) in XkbAllocClientMap\n",
DebugF("bad keycode (%d,%d) in XkbAllocClientMap\n",
xkb->min_key_code,xkb->max_key_code);
#endif
return BadValue;
}
......
......@@ -413,10 +413,7 @@ unsigned changed,tmp;
if (((explicit&XkbExplicitAutoRepeatMask)==0)&&(xkb->ctrls)) {
CARD8 old;
old= xkb->ctrls->per_key_repeat[key/8];
#ifdef RETURN_SHOULD_REPEAT
if (*XkbKeySymsPtr(xkb,key) != XK_Return)
#endif
xkb->ctrls->per_key_repeat[key/8]|= (1<<(key%8));
xkb->ctrls->per_key_repeat[key/8]|= (1<<(key%8));
if (changes && (old!=xkb->ctrls->per_key_repeat[key/8]))
changes->ctrls.changed_ctrls|= XkbPerKeyRepeatMask;
}
......
......@@ -142,10 +142,6 @@ Atom name;
next= 0;
pitch= oldPitch= ctrl->bell_pitch;
duration= oldDuration= ctrl->bell_duration;
#ifdef DEBUG
if (xkbDebugFlags>1)
ErrorF("beep: %d (count= %d)\n",xkbInfo->beepType,xkbInfo->beepCount);
#endif
name= None;
switch (xkbInfo->beepType) {
default:
......
......@@ -46,12 +46,6 @@ int realRepeat;
realRepeat= ctrl->autoRepeat;
if ((dev->kbdfeed)&&(XkbDDXUsesSoftRepeat(dev)))
ctrl->autoRepeat= 0;
#ifdef DEBUG
if (xkbDebugFlags&0x4) {
ErrorF("XkbDDXKeybdCtrlProc: setting repeat to %d (real repeat is %d)\n",
ctrl->autoRepeat,realRepeat);
}
#endif
if (dev->key && dev->key->xkbInfo && dev->key->xkbInfo->kbdProc)
(*dev->key->xkbInfo->kbdProc)(dev,ctrl);
ctrl->autoRepeat= realRepeat;
......@@ -92,23 +86,6 @@ unsigned changed, i;
unsigned char *rep_old, *rep_new, *rep_fb;
changed= new->enabled_ctrls^old->enabled_ctrls;
#ifdef NOTDEF
if (changed&XkbRepeatKeysMask) {
if (dev->kbdfeed) {
int realRepeat;
if (new->enabled_ctrls&XkbRepeatKeysMask)
dev->kbdfeed->ctrl.autoRepeat= realRepeat= 1;
else dev->kbdfeed->ctrl.autoRepeat= realRepeat= 0;
if (XkbDDXUsesSoftRepeat(dev))
dev->kbdfeed->ctrl.autoRepeat= FALSE;
if (dev->kbdfeed->CtrlProc)
(*dev->kbdfeed->CtrlProc)(dev,&dev->kbdfeed->ctrl);
dev->kbdfeed->ctrl.autoRepeat= realRepeat;
}
}
#endif
for (rep_old = old->per_key_repeat,
rep_new = new->per_key_repeat,
rep_fb = dev->kbdfeed->ctrl.autoRepeats,
......
......@@ -41,14 +41,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <xkbsrv.h>
#include <nx-X11/extensions/XI.h>
#ifndef PATH_MAX
#ifdef MAXPATHLEN
#define PATH_MAX MAXPATHLEN
#else
#define PATH_MAX 1024
#endif
#endif
#ifdef WIN32
/* from ddxLoad.c */
extern const char* Win32TempDir();
......@@ -210,9 +202,8 @@ char tmpname[PATH_MAX];
#ifndef WIN32
in= Popen(buf,"r");
#else
#ifdef DEBUG_CMD
ErrorF("xkb executes: %s\n",buf);
#endif
if (xkbDebugFlags)
DebugF("xkb executes: %s\n",buf);
if (System(buf) < 0)
ErrorF("Could not invoke keymap compiler\n");
else
......
......@@ -57,14 +57,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE.
#include <paths.h>
#endif
#ifndef PATH_MAX
#ifdef MAXPATHLEN
#define PATH_MAX MAXPATHLEN
#else
#define PATH_MAX 1024
#endif
#endif
/*
* If XKM_OUTPUT_DIR specifies a path without a leading slash, it is
* relative to the top-level XKB configuration directory.
......@@ -166,44 +158,19 @@ Win32System(const char *cmdline)
#define System(x) Win32System(x)
#endif
#ifdef MAKE_XKM_OUTPUT_DIR
/* Borrow trans_mkdir from Xtransutil.c to more safely make directories */
# undef X11_t
# define TRANS_SERVER
# define PRMSG(lvl,x,a,b,c) \
if (lvl <= 1) { LogMessage(X_ERROR,x,a,b,c); } else ((void)0)
# include <nx-X11/Xtrans/Xtransutil.c>
# ifndef XKM_OUTPUT_DIR_MODE
# define XKM_OUTPUT_DIR_MODE 0755
# endif
#endif
static void
OutputDirectory(
char* outdir,
size_t size)
{
#ifndef WIN32
if (getuid() == 0 && (strlen(XKM_OUTPUT_DIR) < size)
#ifdef MAKE_XKM_OUTPUT_DIR
&& (trans_mkdir(XKM_OUTPUT_DIR, XKM_OUTPUT_DIR_MODE) == 0)
#endif
)
if (getuid() == 0 && (strlen(XKM_OUTPUT_DIR) < size))
{
/* if server running as root it *may* be able to write */
/* FIXME: check whether directory is writable at all */
(void) strcpy (outdir, XKM_OUTPUT_DIR);
} else
#endif
#ifdef _PATH_VARTMP
if ((strlen(_PATH_VARTMP) + 1) < size)
{
(void) strcpy (outdir, _PATH_VARTMP);
if (outdir[strlen(outdir) - 1] != '/') /* Hi IBM, Digital */
(void) strcat (outdir, "/");
} else
#endif
#ifdef WIN32
#else
if (strlen(Win32TempDir()) + 1 < size)
{
(void) strcpy(outdir, Win32TempDir());
......@@ -264,15 +231,10 @@ char *cmd = NULL,file[PATH_MAX],xkm_output_dir[PATH_MAX],*map,*outFile;
xkm_output_dir,outFile) == -1)
cmd = NULL;
}
#ifdef DEBUG
if (xkbDebugFlags) {
ErrorF("XkbDDXCompileNamedKeymap compiling keymap using:\n");
ErrorF(" \"cmd\"\n");
DebugF("XkbDDXCompileNamedKeymap compiling keymap using:\n");
DebugF(" \"cmd\"\n");
}
#endif
#ifdef DEBUG_CMD
ErrorF("xkb executes: %s\n",cmd);
#endif
if (System(cmd)==0) {
if (nameRtrn) {
strncpy(nameRtrn,outFile,nameRtrnLen);
......@@ -284,9 +246,7 @@ char *cmd = NULL,file[PATH_MAX],xkm_output_dir[PATH_MAX],*map,*outFile;
free(cmd);
return True;
}
#ifdef DEBUG
ErrorF("Error compiling keymap (%s)\n",names->keymap);
#endif
DebugF("Error compiling keymap (%s)\n",names->keymap);
if (outFile!=NULL)
_XkbFree(outFile);
if (cmd!=NULL)
......@@ -399,12 +359,8 @@ char tmpname[PATH_MAX];
if (fclose(out)==0 && System(buf) >= 0)
#endif
{
#ifdef DEBUG_CMD
ErrorF("xkb executes: %s\n",buf);
ErrorF("xkbcomp input:\n");
XkbWriteXKBKeymapForNames(stderr,names,NULL,xkb,want,need);
ErrorF("end xkbcomp input\n");
#endif
if (xkbDebugFlags)
DebugF("xkb executes: %s\n",buf);
if (nameRtrn) {
strncpy(nameRtrn,keymap,nameRtrnLen);
nameRtrn[nameRtrnLen-1]= '\0';
......@@ -413,24 +369,20 @@ char tmpname[PATH_MAX];
free (buf);
return True;
}
#ifdef DEBUG
else
ErrorF("Error compiling keymap (%s)\n",keymap);
#endif
DebugF("Error compiling keymap (%s)\n",keymap);
#ifdef WIN32
/* remove the temporary file */
unlink(tmpname);
#endif
}
#ifdef DEBUG
else {
#ifndef WIN32
ErrorF("Could not invoke keymap compiler\n");
DebugF("Could not invoke keymap compiler\n");
#else
ErrorF("Could not open file %s\n", tmpname);
DebugF("Could not open file %s\n", tmpname);
#endif
}
#endif
if (nameRtrn)
nameRtrn[0]= '\0';
if (buf != NULL)
......@@ -452,15 +404,16 @@ FILE * file;
&&(!isalpha(xkm_output_dir[0]) || xkm_output_dir[1]!=':')
#endif
) {
if (strlen(XkbBaseDirectory)+strlen(xkm_output_dir)
+strlen(mapName)+6 <= PATH_MAX)
{
sprintf(buf,"%s/%s%s.xkm",XkbBaseDirectory,
xkm_output_dir,mapName);
}
if (snprintf(buf, PATH_MAX, "%s/%s%s.xkm", XkbBaseDirectory,
xkm_output_dir, mapName) >= PATH_MAX)
buf[0] = '\0';
}
else
{
if (snprintf(buf, PATH_MAX, "%s%s.xkm", xkm_output_dir, mapName)
>= PATH_MAX)
buf[0] = '\0';
}
else if (strlen(xkm_output_dir)+strlen(mapName)+5 <= PATH_MAX)
sprintf(buf,"%s%s.xkm",xkm_output_dir,mapName);
if (buf[0] != '\0')
file= fopen(buf,"rb");
else file= NULL;
......@@ -505,17 +458,13 @@ unsigned missing;
return 0;
}
else if (!XkbDDXCompileNamedKeymap(xkb,names,nameRtrn,nameRtrnLen)) {
#ifdef NOISY
ErrorF("Couldn't compile keymap file\n");
#endif
DebugF("Couldn't compile keymap file\n");
return 0;
}
}
else if (!XkbDDXCompileKeymapByNames(xkb,names,want,need,
nameRtrn,nameRtrnLen)){
#ifdef NOISY
ErrorF("Couldn't compile keymap file\n");
#endif
DebugF("Couldn't compile keymap file\n");
return 0;
}
file= XkbDDXOpenConfigFile(nameRtrn,fileName,PATH_MAX);
......@@ -530,11 +479,9 @@ unsigned missing;
(void) unlink (fileName);
return 0;
}
#ifdef DEBUG
else if (xkbDebugFlags) {
ErrorF("Loaded %s, defined=0x%x\n",fileName,finfoRtrn->defined);
DebugF("Loaded %s, defined=0x%x\n",fileName,finfoRtrn->defined);
}
#endif
fclose(file);
(void) unlink (fileName);
return (need|want)&(~missing);
......@@ -559,9 +506,9 @@ XkbRF_RulesPtr rules;
sprintf(buf,"rules/%s",rules_name);
}
else {
if (strlen(XkbBaseDirectory)+strlen(rules_name)+8 > PATH_MAX)
if (snprintf(buf, PATH_MAX, "%s/rules/%s", XkbBaseDirectory, rules_name)
>= PATH_MAX)
return False;
sprintf(buf,"%s/rules/%s",XkbBaseDirectory,rules_name);
}
if ((file= fopen(buf,"r"))==NULL)
return False;
......
......@@ -48,16 +48,6 @@
#include "xkbstr.h"
#include <xkbsrv.h>
#ifdef DEBUG
#define PR_DEBUG(s) fprintf(stderr,s)
#define PR_DEBUG1(s,a) fprintf(stderr,s,a)
#define PR_DEBUG2(s,a,b) fprintf(stderr,s,a,b)
#else
#define PR_DEBUG(s)
#define PR_DEBUG1(s,a)
#define PR_DEBUG2(s,a,b)
#endif
/***====================================================================***/
#define DFLT_LINE_SIZE 128
......@@ -169,8 +159,8 @@ Bool endOfFile,spacePending,slashPending,inComment;
}
if (checkbang && ch=='!') {
if (line->num_line!=0) {
PR_DEBUG("The '!' legal only at start of line\n");
PR_DEBUG("Line containing '!' ignored\n");
DebugF("The '!' legal only at start of line\n");
DebugF("Line containing '!' ignored\n");
line->num_line= 0;
inComment= 0;
break;
......@@ -271,9 +261,7 @@ unsigned present, l_ndx_present, v_ndx_present;
register int i;
int len, ndx;
_Xstrtokparams strtok_buf;
#ifdef DEBUG
Bool found;
#endif
l_ndx_present = v_ndx_present = present= 0;
......@@ -282,9 +270,7 @@ Bool found;
bzero((char *)remap,sizeof(RemapSpec));
remap->number = len;
while ((tok=_XStrtok(str," ",strtok_buf))!=NULL) {
#ifdef DEBUG
found= False;
#endif
str= NULL;
if (strcmp(tok,"=")==0)
continue;
......@@ -297,22 +283,20 @@ Bool found;
*end != '\0' || ndx == -1)
break;
if (ndx < 1 || ndx > XkbNumKbdGroups) {
PR_DEBUG2("Illegal %s index: %d\n", cname[i], ndx);
PR_DEBUG1("Index must be in range 1..%d\n",
DebugF("Illegal %s index: %d\n", cname[i], ndx);
DebugF("Index must be in range 1..%d\n",
XkbNumKbdGroups);
break;
}
} else {
ndx = 0;
}
#ifdef DEBUG
found= True;
#endif
if (present&(1<<i)) {
if ((i == LAYOUT && l_ndx_present&(1<<ndx)) ||
(i == VARIANT && v_ndx_present&(1<<ndx)) ) {
PR_DEBUG1("Component \"%s\" listed twice\n",tok);
PR_DEBUG("Second definition ignored\n");
DebugF("Component \"%s\" listed twice\n",tok);
DebugF("Second definition ignored\n");
break;
}
}
......@@ -326,38 +310,34 @@ Bool found;
break;
}
}
#ifdef DEBUG
if (!found) {
fprintf(stderr,"Unknown component \"%s\" ignored\n",tok);
}
#endif
}
if ((present&PART_MASK)==0) {
#ifdef DEBUG
unsigned mask= PART_MASK;
fprintf(stderr,"Mapping needs at least one of ");
ErrorF("Mapping needs at least one of ");
for (i=0; (i<MAX_WORDS); i++) {
if ((1L<<i)&mask) {
mask&= ~(1L<<i);
if (mask) fprintf(stderr,"\"%s,\" ",cname[i]);
else fprintf(stderr,"or \"%s\"\n",cname[i]);
if (mask) DebugF("\"%s,\" ",cname[i]);
else DebugF("or \"%s\"\n",cname[i]);
}
}
fprintf(stderr,"Illegal mapping ignored\n");
#endif
DebugF("Illegal mapping ignored\n");
remap->num_remap= 0;
return;
}
if ((present&COMPONENT_MASK)==0) {
PR_DEBUG("Mapping needs at least one component\n");
PR_DEBUG("Illegal mapping ignored\n");
DebugF("Mapping needs at least one component\n");
DebugF("Illegal mapping ignored\n");
remap->num_remap= 0;
return;
}
if (((present&COMPONENT_MASK)&(1<<KEYMAP))&&
((present&COMPONENT_MASK)!=(1<<KEYMAP))) {
PR_DEBUG("Keymap cannot appear with other components\n");
PR_DEBUG("Illegal mapping ignored\n");
DebugF("Keymap cannot appear with other components\n");
DebugF("Illegal mapping ignored\n");
remap->num_remap= 0;
return;
}
......@@ -432,8 +412,8 @@ Bool append = False;
}
if (remap->num_remap==0) {
PR_DEBUG("Must have a mapping before first line of data\n");
PR_DEBUG("Illegal line of data ignored\n");
DebugF("Must have a mapping before first line of data\n");
DebugF("Illegal line of data ignored\n");
return False;
}
bzero((char *)&tmp,sizeof(FileSpec));
......@@ -445,8 +425,8 @@ Bool append = False;
continue;
}
if (nread>remap->num_remap) {
PR_DEBUG("Too many words on a line\n");
PR_DEBUG1("Extra word \"%s\" ignored\n",tok);
DebugF("Too many words on a line\n");
DebugF("Extra word \"%s\" ignored\n",tok);
continue;
}
tmp.name[remap->remap[nread].word]= tok;
......@@ -454,8 +434,8 @@ Bool append = False;
append = True;
}
if (nread<remap->num_remap) {
PR_DEBUG1("Too few words on a line: %s\n", line->line);
PR_DEBUG("line ignored\n");
DebugF("Too few words on a line: %s\n", line->line);
DebugF("line ignored\n");
return False;
}
......@@ -901,9 +881,7 @@ XkbRF_AddRule(XkbRF_RulesPtr rules)
}
if (!rules->rules) {
rules->sz_rules= rules->num_rules= 0;
#ifdef DEBUG
fprintf(stderr,"Allocation failure in XkbRF_AddRule\n");
#endif
DebugF("Allocation failure in XkbRF_AddRule\n");
return NULL;
}
bzero((char *)&rules->rules[rules->num_rules],sizeof(XkbRF_RuleRec));
......@@ -975,9 +953,8 @@ Bool ok;
if ((!base)||(!rules))
return False;
if (locale) {
if (strlen(base)+strlen(locale)+2 > PATH_MAX)
if (snprintf(buf, PATH_MAX, "%s-%s", base, locale) >= PATH_MAX)
return False;
sprintf(buf,"%s-%s", base, locale);
}
else {
if (strlen(base)+1 > PATH_MAX)
......@@ -1020,7 +997,7 @@ XkbRF_AddVarDesc(XkbRF_DescribeVarsPtr vars)
}
if (!vars->desc) {
vars->sz_desc= vars->num_desc= 0;
PR_DEBUG("Allocation failure in XkbRF_AddVarDesc\n");
DebugF("Allocation failure in XkbRF_AddVarDesc\n");
return NULL;
}
vars->desc[vars->num_desc].name= NULL;
......@@ -1057,7 +1034,7 @@ XkbRF_AddVarToDescribe(XkbRF_RulesPtr rules,char *name)
XkbRF_DescribeVarsRec);
}
if ((!rules->extra_names)||(!rules->extra)) {
PR_DEBUG("allocation error in extra parts\n");
DebugF("allocation error in extra parts\n");
rules->sz_extra= rules->num_extra= 0;
rules->extra_names= NULL;
rules->extra= NULL;
......@@ -1100,7 +1077,7 @@ int len,headingtype,extra_ndx = 0;
}
if (extra_ndx<0) {
XkbRF_DescribeVarsPtr var;
PR_DEBUG1("Extra heading \"%s\" encountered\n",tok);
DebugF("Extra heading \"%s\" encountered\n",tok);
var= XkbRF_AddVarToDescribe(rules,tok);
if (var)
extra_ndx= var-rules->extra;
......@@ -1111,20 +1088,20 @@ int len,headingtype,extra_ndx = 0;
}
if (headingtype == HEAD_NONE) {
PR_DEBUG("Must have a heading before first line of data\n");
PR_DEBUG("Illegal line of data ignored\n");
DebugF("Must have a heading before first line of data\n");
DebugF("Illegal line of data ignored\n");
continue;
}
len = strlen(line.line);
if ((tmp.name= strtok(line.line, " \t")) == NULL) {
PR_DEBUG("Huh? No token on line\n");
PR_DEBUG("Illegal line of data ignored\n");
DebugF("Huh? No token on line\n");
DebugF("Illegal line of data ignored\n");
continue;
}
if (strlen(tmp.name) == len) {
PR_DEBUG("No description found\n");
PR_DEBUG("Illegal line of data ignored\n");
DebugF("No description found\n");
DebugF("Illegal line of data ignored\n");
continue;
}
......@@ -1132,8 +1109,8 @@ int len,headingtype,extra_ndx = 0;
while ((*tok!='\n')&&isspace(*tok))
tok++;
if (*tok == '\0') {
PR_DEBUG("No description found\n");
PR_DEBUG("Illegal line of data ignored\n");
DebugF("No description found\n");
DebugF("Illegal line of data ignored\n");
continue;
}
tmp.desc= tok;
......
......@@ -2363,7 +2363,7 @@ ProcXkbSetMap(ClientPtr client)
else first= last= 0;
if (change.map.num_modmap_keys>0) {
firstMM= change.map.first_modmap_key;
lastMM= first+change.map.num_modmap_keys-1;
lastMM= firstMM + change.map.num_modmap_keys - 1;
}
else firstMM= lastMM= 0;
if ((last>0) && (lastMM>0)) {
......@@ -5677,10 +5677,8 @@ char * str;
return status;
}
else if (length!=0) {
#ifdef DEBUG
ErrorF("Internal Error! BadLength in ProcXkbGetDeviceInfo\n");
ErrorF(" Wrote %d fewer bytes than expected\n",length);
#endif
return BadLength;
}
if (stuff->wanted&(~supported)) {
......
......@@ -126,11 +126,9 @@ xEvent xE;
xE.u.u.type = type;
xE.u.u.detail = keyCode;
xE.u.keyButtonPointer.time = GetTimeInMillis();
#ifdef DEBUG
if (xkbDebugFlags&0x8) {
ErrorF("AXKE: Key %d %s\n",keyCode,(xE.u.u.type==KeyPress?"down":"up"));
DebugF("AXKE: Key %d %s\n",keyCode,(xE.u.u.type==KeyPress?"down":"up"));
}
#endif
if (!_XkbIsPressEvent(type) && isRepeat)
XkbLastRepeatEvent= (void *)&xE;
......@@ -524,10 +522,8 @@ KeySym * sym = XkbKeySymsPtr(xkbi->desc,key);
XkbRepeatKeysMask)) {
if (BitIsOn(keybd->kbdfeed->ctrl.autoRepeats,key))
{
#ifdef DEBUG
if (xkbDebugFlags&0x10)
ErrorF("Starting software autorepeat...\n");
#endif
DebugF("Starting software autorepeat...\n");
xkbi->repeatKey = key;
xkbi->repeatKeyTimer= TimerSet(xkbi->repeatKeyTimer,
0, ctrls->repeat_delay,
......
......@@ -1142,7 +1142,6 @@ XkbSrvInfoPtr xkbi;
KeyClassPtr keyc;
int changed,sendEvent;
Bool genStateNotify;
XkbStateRec oldState;
XkbAction act;
XkbFilterPtr filter;
Bool keyEvent;
......@@ -1157,7 +1156,7 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(dev);
xkbi= keyc->xkbInfo;
key= xE->u.u.detail;
if ((xkbi->flags&_XkbStateNotifyInProgress)==0) {
oldState= xkbi->state;
xkbi->prev_state = xkbi->state;
xkbi->flags|= _XkbStateNotifyInProgress;
genStateNotify= True;
}
......@@ -1303,11 +1302,10 @@ xkbDeviceInfoPtr xkbPrivPtr = XKBDEVICEINFO(dev);
else if (keyEvent)
FixKeyState(xE,dev);
xkbi->prev_state= oldState;
XkbComputeDerivedState(xkbi);
keyc->prev_state= keyc->state;
keyc->state= XkbStateFieldFromRec(&xkbi->state);
changed = XkbStateChangedFlags(&oldState,&xkbi->state);
changed = XkbStateChangedFlags(&xkbi->prev_state,&xkbi->state);
if (genStateNotify) {
if (changed) {
xkbStateNotify sn;
......
......@@ -804,21 +804,19 @@ XkbSrvInfoPtr xkbi;
xkbi= pXDev->key->xkbInfo;
if ( pClient->xkbClientFlags & _XkbClientInitialized ) {
#ifdef DEBUG
if ((xkbDebugFlags&0x10)&&
((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease))) {
ErrorF("XKbFilterWriteEvents:\n");
ErrorF(" Event state= 0x%04x\n",xE[0].u.keyButtonPointer.state);
ErrorF(" XkbLastRepeatEvent!=xE (0x%x!=0x%x) %s\n",
DebugF("XKbFilterWriteEvents:\n");
DebugF(" Event state= 0x%04x\n",xE[0].u.keyButtonPointer.state);
DebugF(" XkbLastRepeatEvent!=xE (0x%x!=0x%x) %s\n",
XkbLastRepeatEvent,xE,
((XkbLastRepeatEvent!=(void *)xE)?"True":"False"));
ErrorF(" (xkbClientEventsFlags&XWDA)==0 (0x%x) %s\n",
DebugF(" (xkbClientEventsFlags&XWDA)==0 (0x%x) %s\n",
pClient->xkbClientFlags,
(_XkbWantsDetectableAutoRepeat(pClient)?"True":"False"));
ErrorF(" !IsRelease(%d) %s\n",xE[0].u.u.type,
DebugF(" !IsRelease(%d) %s\n",xE[0].u.u.type,
(!_XkbIsReleaseEvent(xE[0].u.u.type))?"True":"False");
}
#endif /* DEBUG */
if ( (XkbLastRepeatEvent==(void *)xE) &&
(_XkbWantsDetectableAutoRepeat(pClient)) &&
(_XkbIsReleaseEvent(xE[0].u.u.type)) ) {
......@@ -853,13 +851,11 @@ XkbSrvInfoPtr xkbi;
if (xE[0].u.u.type == ButtonPress &&
((xE[0].u.keyButtonPointer.state >> 7) & button_mask) == button_mask &&
(xkbi->lockedPtrButtons & button_mask) == button_mask) {
#ifdef DEBUG
/* If the MouseKeys is pressed, and the "real" mouse is also pressed
* when the mouse is released, the server does not behave properly.
* Faking a release of the button here solves the problem.
*/
ErrorF("Faking release of button %d\n", xE[0].u.u.detail);
#endif
DebugF("Faking release of button %d\n", xE[0].u.u.detail);
XkbDDXFakePointerButton(ButtonRelease, xE[0].u.u.detail);
}
}
......@@ -868,19 +864,16 @@ XkbSrvInfoPtr xkbi;
for (i=0;i<nEvents;i++) {
type= xE[i].u.u.type;
#ifdef DEBUG
if ((xkbDebugFlags&0x4)&&
((xE[0].u.u.type==KeyPress)||(xE[0].u.u.type==KeyRelease))) {
XkbStatePtr s= &xkbi->state;
ErrorF("XKbFilterWriteEvents (non-XKB):\n");
ErrorF("event= 0x%04x\n",xE[0].u.keyButtonPointer.state);
ErrorF("lookup= 0x%02x, grab= 0x%02x\n",s->lookup_mods,
s->grab_mods);
ErrorF("compat lookup= 0x%02x, grab= 0x%02x\n",
s->compat_lookup_mods,
s->compat_grab_mods);
DebugF("XKbFilterWriteEvents (non-XKB):\n");
DebugF("event= 0x%04x\n",xE[0].u.keyButtonPointer.state);
DebugF("lookup= 0x%02x, grab= 0x%02x\n",xkbi->state.lookup_mods,
xkbi->state.grab_mods);
DebugF("compat lookup= 0x%02x, grab= 0x%02x\n",
xkbi->state.compat_lookup_mods,
xkbi->state.compat_grab_mods);
}
#endif
if ( (type>=KeyPress)&&(type<=MotionNotify) ) {
CARD16 old,new;
......@@ -900,9 +893,7 @@ XkbSrvInfoPtr xkbi;
if (type == ButtonPress &&
((xE[i].u.keyButtonPointer.state >> 7) & button_mask) == button_mask &&
(xkbi->lockedPtrButtons & button_mask) == button_mask) {
#ifdef DEBUG
ErrorF("Faking release of button %d\n", xE[i].u.u.detail);
#endif
DebugF("Faking release of button %d\n", xE[i].u.u.detail);
XkbDDXFakePointerButton(ButtonRelease, xE[i].u.u.detail);
}
}
......
......@@ -284,10 +284,6 @@ XkbSetRulesDflts(char *rulesFile,char *model,char *layout,
/***====================================================================***/
#if defined(luna)
#define XKB_DDX_PERMANENT_LOCK 1
#endif
#include "xkbDflts.h"
static Bool
......@@ -394,15 +390,6 @@ Atom unknown;
names->indicators[LED_COMPOSE-1] = CREATE_ATOM("Compose");
#endif
}
#ifdef DEBUG_RADIO_GROUPS
if (names->num_rg<1) {
names->radio_groups= (Atom *)_XkbCalloc(RG_COUNT, sizeof(Atom));
if (names->radio_groups) {
names->num_rg = RG_COUNT;
names->radio_groups[RG_BOGUS_FUNCTION_GROUP]= CREATE_ATOM("BOGUS");
}
}
#endif
if (xkb->geom!=NULL)
names->geometry= xkb->geom->name;
else names->geometry= unknown;
......@@ -773,9 +760,7 @@ XkbSrvLedInfoPtr sli;
sli= XkbFindSrvLedInfo(pXDev,XkbDfltXIClass,XkbDfltXIId,0);
if (sli && xkbi)
XkbCheckIndicatorMaps(xkbi->device,sli,XkbAllIndicatorsMask);
#ifdef DEBUG
else ErrorF("No indicator feedback in XkbFinishInit (shouldn't happen)!\n");
#endif
else DebugF("No indicator feedback in XkbFinishInit (shouldn't happen)!\n");
return softRepeat;
}
......
......@@ -52,11 +52,9 @@ unsigned ndx;
xkbi= keyc->xkbInfo;
key= xE->u.u.detail;
#ifdef DEBUG
if (xkbDebugFlags&0x8) {
ErrorF("XkbPKE: Key %d %s\n",key,(xE->u.u.type==KeyPress?"down":"up"));
DebugF("XkbPKE: Key %d %s\n",key,(xE->u.u.type==KeyPress?"down":"up"));
}
#endif
if ( (xkbi->repeatKey==key) && (xE->u.u.type==KeyRelease) &&
((xkbi->desc->ctrls->enabled_ctrls&XkbRepeatKeysMask)==0) ) {
......
......@@ -187,20 +187,10 @@ XkbDescPtr xkb;
unsigned key,nG,explicit;
KeySymsPtr pCore;
int types[XkbNumKbdGroups];
KeySym tsyms[XkbMaxSymsPerKey],*syms;
KeySym tsyms[XkbMaxSymsPerKey] = {NoSymbol},*syms;
XkbMapChangesPtr mc;
xkb= pXDev->key->xkbInfo->desc;
#ifdef NOTYET
if (first<xkb->min_key_code) {
if (first>=XkbMinLegalKeyCode) {
xkb->min_key_code= first;
/* 1/12/95 (ef) -- XXX! should zero out the new maps */
changes->map.changed|= XkbKeycodesMask;
generate a NewKeyboard notify here?
}
}
#endif
if (first+num-1>xkb->max_key_code) {
/* 1/12/95 (ef) -- XXX! should allow XKB structures to grow */
num= xkb->max_key_code-first+1;
......
......@@ -50,10 +50,6 @@ XkbInternAtom(Display *dpy,char *str,Bool only_if_exists)
return MakeAtom(str,strlen(str),!only_if_exists);
}
#ifndef SEEK_SET
#define SEEK_SET 0
#endif
/***====================================================================***/
static XPointer
......@@ -547,10 +543,8 @@ FindTypeForKey(XkbDescPtr xkb,Atom name,unsigned width,KeySym *syms)
register unsigned i;
for (i=0;i<xkb->map->num_types;i++) {
if (xkb->map->types[i].name==name) {
#ifdef DEBUG
if (xkb->map->types[i].num_levels!=width)
fprintf(stderr,"Group width mismatch between key and type\n");
#endif
DebugF("Group width mismatch between key and type\n");
return &xkb->map->types[i];
}
}
......@@ -1072,10 +1066,8 @@ unsigned i,size_toc;
ignored_result = fread(file_info,SIZEOF(xkmFileInfo),1,file);
size_toc= file_info->num_toc;
if (size_toc>max_toc) {
#ifdef DEBUG
fprintf(stderr,"Warning! Too many TOC entries; last %d ignored\n",
DebugF("Warning! Too many TOC entries; last %d ignored\n",
size_toc-max_toc);
#endif
size_toc= max_toc;
}
for (i=0;i<size_toc;i++) {
......@@ -1185,8 +1177,12 @@ char name[100];
return Xstrdup(name);
break;
default:
/* tmpTOC is unitilaoized here, so we use the one from toc for now.
_XkbLibError(_XkbErrBadImplementation,
XkbConfigText(tmpTOC.type,XkbMessage),0);
*/
_XkbLibError(_XkbErrBadImplementation,
XkbConfigText(toc->type,XkbMessage),0);
break;
}
return NULL;
......@@ -1215,11 +1211,7 @@ unsigned which= need|want;
if (result->xkb==NULL)
result->xkb= XkbAllocKeyboard();
for (i=0;i<fileInfo.num_toc;i++) {
#ifdef SEEK_SET
fseek(file,toc[i].offset,SEEK_SET);
#else
fseek(file,toc[i].offset,0);
#endif
tmp= fread(&tmpTOC,SIZEOF(xkmSectionInfo),1,file);
nRead= tmp*SIZEOF(xkmSectionInfo);
if ((tmpTOC.type!=toc[i].type)||(tmpTOC.format!=toc[i].format)||
......
......@@ -6,9 +6,9 @@ if [[ "${STATIC_ANALYSIS}" == "yes" ]]; then
echo 'Error: cppcheck is not installed.' >&2
exit 1
fi
CPPCHECK_OPTS='--error-exitcode=0 --force --quiet'
CPPCHECK_OPTS='--error-exitcode=0 --force --quiet --suppressions-list=./static-analysis-suppressions'
# we exclude some external projects
CPPCHECK_EXCLUDES='-i ./nx-X11/extras/Mesa* -i ./nx-X11/extras/Mesa_* -i nx-X11/programs/Xserver/GL/mesa*'
CPPCHECK_EXCLUDES='-i ./nx-X11/extras/ -i nx-X11/programs/Xserver/GL/mesa* -i ./.pc -i ./nx-X11/.build-exports -i ./nx-X11/exports -i ./doc'
echo "$(cppcheck --version):";
cppcheck $CPPCHECK_OPTS $CPPCHECK_EXCLUDES .;
fi
memleak:nx-X11/programs/Xserver/dix/gc.c
memleak:nx-X11/lib/include/xtrans/Xtrans.c:982
memleak:nx-X11/lib/include/xtrans/Xtrans.c:987
memleak:nx-X11/lib/include/xtrans/Xtrans.c:1004
memleak:nx-X11/lib/include/xtrans/Xtrans.c:1009
uninitvar:nx-X11/lib/include/xtrans/Xtranssock.c:1107
uninitvar:nx-X11/lib/include/xtrans/Xtranssock.c:1109
uninitvar:nx-X11/lib/include/xtrans/Xtranssock.c:1146
uninitvar:nx-X11/lib/include/xtrans/Xtranssock.c:1148
memleak:nx-X11/lib/include/xtrans/Xtranssock.c:2446
memleak:nx-X11/lib/include/xtrans/Xtranssock.c:2458
nullPointer:nx-X11/programs/Xserver/Xext/security.c
nullPointerArithmetic:nx-X11/programs/Xserver/randr/rrcrtc.c
nullPointerArithmetic:nx-X11/programs/Xserver/randr/rroutput.c
nullPointerArithmetic:nx-X11/programs/Xserver/randr/rrprovider.c
nullPointerArithmetic:nx-X11/programs/Xserver/randr/rrscreen.c
memleak:nx-X11/programs/Xserver/render/render.c:2929
memleak:nx-X11/programs/Xserver/render/render.c:2991
memleak:nx-X11/programs/Xserver/render/render.c:3049
memleak:nx-X11/programs/Xserver/render/render.c:3103
memleak:nx-X11/programs/Xserver/render/render.c:3157
memleak:nx-X11/programs/Xserver/render/render.c:3288
doubleFree:nx-X11/programs/Xserver/hw/nxagent/Keyboard.c:1699
uninitStructMember:nx-X11/programs/Xserver/mi/miwideline.c:190
invalidFree:nxcomp/src/EncodeBuffer.cpp:84
invalidFree:nxcomp/src/EncodeBuffer.cpp:106
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment