From 4e0d7cc506b661b5e5cedf8be6e17aa4c8075aa8 Mon Sep 17 00:00:00 2001 From: Tomas Carnecky Date: Fri, 20 Mar 2009 16:19:34 +0100 Subject: [PATCH 01/52] FID, whatever that was, isn't anymore No traces of FID in the xserver nor in the modules listed in util/modular/xorg.modules Signed-off-by: Tomas Carnecky Signed-off-by: Peter Hutterer --- include/os.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/include/os.h b/include/os.h index df5c73a4f..7da31a5ad 100644 --- a/include/os.h +++ b/include/os.h @@ -52,8 +52,6 @@ SOFTWARE. #include "misc.h" #include -#define NullFID ((FID) 0) - #define SCREEN_SAVER_ON 0 #define SCREEN_SAVER_OFF 1 #define SCREEN_SAVER_FORCER 2 @@ -66,7 +64,6 @@ SOFTWARE. #define MAX_BIG_REQUEST_SIZE 4194303 #endif -typedef pointer FID; typedef struct _FontPathRec *FontPathPtr; typedef struct _NewClientRec *NewClientPtr; From 62183a06e5f72a18abc3d58c4bf5658a20ece217 Mon Sep 17 00:00:00 2001 From: Tomas Carnecky Date: Fri, 20 Mar 2009 16:19:33 +0100 Subject: [PATCH 02/52] Remove two unused defines in C files These two defines were defined in C files but not used anywhere: dix/window.c #define DeviceEventMasks (KeyPressMask | [...] os/connection.c #define MAXFD 500 Signed-off-by: Tomas Carnecky Signed-off-by: Peter Hutterer --- dix/window.c | 3 --- os/connection.c | 1 - 2 files changed, 4 deletions(-) diff --git a/dix/window.c b/dix/window.c index e2669f0c5..f112f81d4 100644 --- a/dix/window.c +++ b/dix/window.c @@ -984,9 +984,6 @@ DestroySubwindows(WindowPtr pWin, ClientPtr client) return Success; } -#define DeviceEventMasks (KeyPressMask | KeyReleaseMask | ButtonPressMask | \ - ButtonReleaseMask | PointerMotionMask) - /***** * ChangeWindowAttributes * diff --git a/os/connection.c b/os/connection.c index 14c91b541..a6270b38a 100644 --- a/os/connection.c +++ b/os/connection.c @@ -172,7 +172,6 @@ int *ConnectionTranslation = NULL; #define MAXSOCKS 500 #undef MAXSELECT #define MAXSELECT 500 -#define MAXFD 500 struct _ct_node { struct _ct_node *next; From 844bb629fe786ecf536039df3f5f4b3b214c9d40 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 19 Mar 2009 15:44:34 +1000 Subject: [PATCH 03/52] dix: remove a truly useless a = (foo) ? bar : bar; statement. Signed-off-by: Peter Hutterer --- dix/events.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dix/events.c b/dix/events.c index 5702d2f21..e73044e83 100644 --- a/dix/events.c +++ b/dix/events.c @@ -1680,7 +1680,7 @@ AllowSome(ClientPtr client, { if (dev == thisDev) continue; - devgrabinfo = (core) ? &dev->deviceGrab : &dev->deviceGrab; + devgrabinfo = &dev->deviceGrab; if (devgrabinfo->grab && SameClient(devgrabinfo->grab, client)) devgrabinfo->sync.state = THAWED; From e26f79335bb7a9ad34fe9b23c283a214202f89ed Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Tue, 17 Mar 2009 16:22:00 +1000 Subject: [PATCH 04/52] xkb: put a few extra checks in against non-keyboards --- xkb/xkb.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/xkb/xkb.c b/xkb/xkb.c index ba1a4f6fd..e7c9a312d 100644 --- a/xkb/xkb.c +++ b/xkb/xkb.c @@ -605,7 +605,7 @@ ProcXkbLatchLockState(ClientPtr client) for (tmpd = inputInfo.devices; tmpd; tmpd = tmpd->next) { if ((tmpd == dev) || (!tmpd->isMaster && tmpd->u.master == dev)) { - if (!tmpd->key->xkbInfo) + if (!tmpd->key || !tmpd->key->xkbInfo) continue; oldState = tmpd->key->xkbInfo->state; @@ -744,6 +744,8 @@ ProcXkbSetControls(ClientPtr client) CHK_MASK_LEGAL(0x01, stuff->changeCtrls, XkbAllControlsMask); for (tmpd = inputInfo.devices; tmpd; tmpd = tmpd->next) { + if (!tmpd->key || !tmpd->key->xkbInfo) + continue; if ((tmpd == dev) || (!tmpd->isMaster && tmpd->u.master == dev)) { xkbi = tmpd->key->xkbInfo; ctrl = xkbi->desc->ctrls; From d698e62690e0a52fa537f1cd792cab7a5b1bafdf Mon Sep 17 00:00:00 2001 From: Maarten Maathuis Date: Thu, 19 Mar 2009 21:35:25 +0100 Subject: [PATCH 05/52] xkb: plug a memory leak in XkbCopySrvLedInfo (#20756) X.Org Bug 20756 Signed-off-by: Peter Hutterer --- xkb/xkbLEDs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xkb/xkbLEDs.c b/xkb/xkbLEDs.c index c61296b18..a70ac841d 100644 --- a/xkb/xkbLEDs.c +++ b/xkb/xkbLEDs.c @@ -643,7 +643,7 @@ XkbCopySrvLedInfo( DeviceIntPtr from, else sli_new->fb.lf = lf; - if (sli_new->flags & XkbSLI_IsDefault) { + if (!(sli_new->flags & XkbSLI_IsDefault)) { sli_new->names= _XkbTypedCalloc(XkbNumIndicators,Atom); sli_new->maps= _XkbTypedCalloc(XkbNumIndicators,XkbIndicatorMapRec); } /* else sli_new->names/maps is pointing to From 4ab93f05664890ff6738ef1089bcd956ce3f06e9 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 23 Mar 2009 15:19:47 -0400 Subject: [PATCH 06/52] misprite: In SourceValidate, check that it's a Window first It almost never is. However, you have _lots_ of input devices now, and walking them all on every Composite operation is not the cheapest thing in the world. --- mi/misprite.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/mi/misprite.c b/mi/misprite.c index 1cf643a13..7db4c485a 100644 --- a/mi/misprite.c +++ b/mi/misprite.c @@ -422,23 +422,24 @@ miSpriteSourceValidate (DrawablePtr pDrawable, int x, int y, int width, SCREEN_PROLOGUE (pScreen, SourceValidate); - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); - - for(pDev = inputInfo.devices; pDev; pDev = pDev->next) + if (pDrawable->type == DRAWABLE_WINDOW) { - if (DevHasCursor(pDev)) - { - pCursorInfo = MISPRITE(pDev); - if (pDrawable->type == DRAWABLE_WINDOW && pCursorInfo->isUp && - pCursorInfo->pScreen == pScreen && - ORG_OVERLAP(&pCursorInfo->saved, pDrawable->x, pDrawable->y, - x, y, width, height)) - { - SPRITE_DEBUG (("SourceValidate remove\n")); - miSpriteRemoveCursor (pDev, pScreen); - } - } + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates,miSpriteScreenKey); + + for(pDev = inputInfo.devices; pDev; pDev = pDev->next) + { + if (DevHasCursor(pDev)) + { + pCursorInfo = MISPRITE(pDev); + if (pCursorInfo->isUp && pCursorInfo->pScreen == pScreen && + ORG_OVERLAP(&pCursorInfo->saved, pDrawable->x, pDrawable->y, + x, y, width, height)) + { + SPRITE_DEBUG (("SourceValidate remove\n")); + miSpriteRemoveCursor (pDev, pScreen); + } + } + } } if (pScreen->SourceValidate) From 603db34337a61754e0c5f71525011d10eab78411 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 25 Mar 2009 15:51:43 +1000 Subject: [PATCH 07/52] Xext: set POINTER_SCREEN flag in XTestFakeInput if necessary. (RH #490984) The POINTER_SCREEN flag must be set explicitly for XTest core events to avoid out-of-range events when the lastSlave was an SD with an explicit axis range. Device events sent through XTest don't need this flag, they are expected to be in the valuator range of the device anyway. Red Hat Bug 490984 Signed-off-by: Peter Hutterer --- Xext/xtest.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Xext/xtest.c b/Xext/xtest.c index fe3816e9c..ab882311a 100644 --- a/Xext/xtest.c +++ b/Xext/xtest.c @@ -159,6 +159,7 @@ ProcXTestFakeInput(ClientPtr client) int nevents = 0; int i; int base = 0; + int flags = 0; nev = (stuff->length << 2) - sizeof(xReq); if ((nev % sizeof(xEvent)) || !nev) @@ -209,8 +210,14 @@ ProcXTestFakeInput(ClientPtr client) client->errorValue = ev->u.u.type; return BadValue; } + + if (ev->u.u.detail == xFalse) + flags |= POINTER_ABSOLUTE; } else + { firstValuator = 0; + flags |= POINTER_ABSOLUTE; + } if (nev > 1 && !dev->valuator) { @@ -279,6 +286,8 @@ ProcXTestFakeInput(ClientPtr client) valuators[1] = ev->u.keyButtonPointer.rootY; numValuators = 2; firstValuator = 0; + if (ev->u.u.detail == xFalse) + flags = POINTER_ABSOLUTE | POINTER_SCREEN; break; default: client->errorValue = ev->u.u.type; @@ -376,14 +385,13 @@ ProcXTestFakeInput(ClientPtr client) GetEventList(&events); switch(type) { case MotionNotify: - nevents = GetPointerEvents(events, dev, type, 0, - (ev->u.u.detail == xFalse) ? POINTER_ABSOLUTE : 0, + nevents = GetPointerEvents(events, dev, type, 0, flags, firstValuator, numValuators, valuators); break; case ButtonPress: case ButtonRelease: nevents = GetPointerEvents(events, dev, type, ev->u.u.detail, - POINTER_ABSOLUTE, firstValuator, + flags, firstValuator, numValuators, valuators); break; case KeyPress: From 45baef0b77f6f0e5e6230eca045dfcbb1e48c647 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 23 Mar 2009 13:32:32 +1000 Subject: [PATCH 08/52] dix: return BadValue as error in SetModifierMapping. Signed-off-by: Peter Hutterer Signed-off-by: Daniel Stone --- dix/devices.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dix/devices.c b/dix/devices.c index 3388dac8d..065b20237 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -1422,7 +1422,7 @@ ProcSetModifierMapping(ClientPtr client) rc = change_modmap(client, PickKeyboard(client), (KeyCode *)&stuff[1], stuff->numKeyPerModifier); if (rc == MappingFailed || rc == -1) - rc = BadValue; + return BadValue; if (rc != Success && rc != MappingSuccess && rc != MappingFailed && rc != MappingBusy) return rc; From e3c1096273446bb7eb993b179ceb989617d149cc Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 23 Mar 2009 13:20:22 +1000 Subject: [PATCH 09/52] dix: build_modmap_from_modkeymap needs to bounds-check its argument. Signed-off-by: Peter Hutterer Signed-off-by: Daniel Stone --- dix/inpututils.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dix/inpututils.c b/dix/inpututils.c index 2226d5562..c6300880b 100644 --- a/dix/inpututils.c +++ b/dix/inpututils.c @@ -235,6 +235,9 @@ static int build_modmap_from_modkeymap(CARD8 *modmap, KeyCode *modkeymap, if (!modkeymap[i]) continue; + if (modkeymap[i] >= MAP_LENGTH) + return BadValue; + if (modmap[modkeymap[i]]) return BadValue; From 1f0eaf886d88f3935e43985d2c889b374f412e43 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 27 Mar 2009 11:29:40 -0400 Subject: [PATCH 10/52] misprite: Fix cast abuse --- mi/misprite.c | 65 +++++++++++++++++++-------------------------------- 1 file changed, 24 insertions(+), 41 deletions(-) diff --git a/mi/misprite.c b/mi/misprite.c index 7db4c485a..b23adb7ef 100644 --- a/mi/misprite.c +++ b/mi/misprite.c @@ -188,8 +188,7 @@ miSpriteReportDamage (DamagePtr pDamage, RegionPtr pRegion, void *closure) miCursorInfoPtr pCursorInfo; DeviceIntPtr pDev; - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); for (pDev = inputInfo.devices; pDev; pDev = pDev->next) { @@ -231,15 +230,15 @@ miSpriteInitialize (ScreenPtr pScreen, return FALSE; pScreenPriv->pDamage = DamageCreate (miSpriteReportDamage, - (DamageDestroyFunc) 0, + NULL, DamageReportRawRegion, TRUE, pScreen, - (void *) pScreen); + pScreen); if (!miPointerInitialize (pScreen, &miSpritePointerFuncs, screenFuncs,TRUE)) { - xfree ((pointer) pScreenPriv); + xfree (pScreenPriv); return FALSE; } for (pVisual = pScreen->visuals; @@ -303,8 +302,7 @@ miSpriteCloseScreen (int i, ScreenPtr pScreen) { miSpriteScreenPtr pScreenPriv; - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); pScreen->CloseScreen = pScreenPriv->CloseScreen; pScreen->GetImage = pScreenPriv->GetImage; pScreen->GetSpans = pScreenPriv->GetSpans; @@ -315,7 +313,7 @@ miSpriteCloseScreen (int i, ScreenPtr pScreen) DamageDestroy (pScreenPriv->pDamage); - xfree ((pointer) pScreenPriv); + xfree (pScreenPriv); return (*pScreen->CloseScreen) (i, pScreen); } @@ -332,8 +330,7 @@ miSpriteGetImage (DrawablePtr pDrawable, int sx, int sy, int w, int h, SCREEN_PROLOGUE (pScreen, GetImage); - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); for(pDev = inputInfo.devices; pDev; pDev = pDev->next) { if (DevHasCursor(pDev)) @@ -368,8 +365,7 @@ miSpriteGetSpans (DrawablePtr pDrawable, int wMax, DDXPointPtr ppt, SCREEN_PROLOGUE (pScreen, GetSpans); - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); for(pDev = inputInfo.devices; pDev; pDev = pDev->next) { @@ -458,8 +454,7 @@ miSpriteCopyWindow (WindowPtr pWindow, DDXPointRec ptOldOrg, RegionPtr prgnSrc) SCREEN_PROLOGUE (pScreen, CopyWindow); - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); for(pDev = inputInfo.devices; pDev; pDev = pDev->next) { @@ -491,8 +486,7 @@ miSpriteBlockHandler (int i, pointer blockData, pointer pTimeout, DeviceIntPtr pDev; miCursorInfoPtr pCursorInfo; - pPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); SCREEN_PROLOGUE(pScreen, BlockHandler); (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask); @@ -535,8 +529,7 @@ miSpriteInstallColormap (ColormapPtr pMap) ScreenPtr pScreen = pMap->pScreen; miSpriteScreenPtr pPriv; - pPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); SCREEN_PROLOGUE(pScreen, InstallColormap); (*pScreen->InstallColormap) (pMap); @@ -574,8 +567,7 @@ miSpriteStoreColors (ColormapPtr pMap, int ndef, xColorItem *pdef) DeviceIntPtr pDev; miCursorInfoPtr pCursorInfo; - pPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); SCREEN_PROLOGUE(pScreen, StoreColors); (*pScreen->StoreColors) (pMap, ndef, pdef); @@ -650,7 +642,7 @@ miSpriteStoreColors (ColormapPtr pMap, int ndef, xColorItem *pdef) static void miSpriteFindColors (miCursorInfoPtr pDevCursor, ScreenPtr pScreen) { - miSpriteScreenPtr pScreenPriv = (miSpriteScreenPtr) + miSpriteScreenPtr pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); CursorPtr pCursor; xColorItem *sourceColor, *maskColor; @@ -696,8 +688,7 @@ miSpriteRealizeCursor (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor) miSpriteScreenPtr pScreenPriv; miCursorInfoPtr pCursorInfo; - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); if (!pDev->isMaster && !pDev->u.master) { ErrorF("[mi] miSpriteRealizeCursor called for floating device.\n"); @@ -716,8 +707,7 @@ miSpriteUnrealizeCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor) { miSpriteScreenPtr pScreenPriv; - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); return (*pScreenPriv->funcs->UnrealizeCursor) (pScreen, pCursor); } @@ -728,8 +718,7 @@ miSpriteSetCursor (DeviceIntPtr pDev, ScreenPtr pScreen, miSpriteScreenPtr pScreenPriv; miCursorInfoPtr pPointer; - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); if (!pDev->isMaster && !pDev->u.master) { @@ -847,8 +836,7 @@ miSpriteMoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) miSpriteScreenPtr pScreenPriv; CursorPtr pCursor; - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); if (!pDev->isMaster && !pDev->u.master) { ErrorF("[mi] miSpriteMoveCursor called for floating device.\n"); @@ -867,8 +855,7 @@ miSpriteDeviceCursorInitialize(DeviceIntPtr pDev, ScreenPtr pScreen) miCursorInfoPtr pCursorInfo; int ret = FALSE; - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); pCursorInfo = xalloc(sizeof(miCursorInfoRec)); if (!pCursorInfo) @@ -900,8 +887,8 @@ miSpriteDeviceCursorCleanup(DeviceIntPtr pDev, ScreenPtr pScreen) if (DevHasCursor(pDev)) { miSpriteScreenPtr pScreenPriv; - pScreenPriv = (miSpriteScreenPtr) - dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, + miSpriteScreenKey); (*pScreenPriv->funcs->DeviceCursorCleanup)(pDev, pScreen); } @@ -924,8 +911,7 @@ miSpriteRemoveCursor (DeviceIntPtr pDev, ScreenPtr pScreen) return; } DamageDrawInternal (pScreen, TRUE); - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); pCursorInfo = MISPRITE(pDev); miSpriteIsDown(pCursorInfo); @@ -965,8 +951,7 @@ miSpriteSaveUnderCursor(DeviceIntPtr pDev, ScreenPtr pScreen) return; } DamageDrawInternal (pScreen, TRUE); - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); pCursorInfo = MISPRITE(pDev); miSpriteComputeSaved (pDev, pScreen); @@ -1010,8 +995,7 @@ miSpriteRestoreCursor (DeviceIntPtr pDev, ScreenPtr pScreen) } DamageDrawInternal (pScreen, TRUE); - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); pCursorInfo = MISPRITE(pDev); miSpriteComputeSaved (pDev, pScreen); @@ -1053,8 +1037,7 @@ miSpriteComputeSaved (DeviceIntPtr pDev, ScreenPtr pScreen) ErrorF("[mi] miSpriteComputeSaved called for floating device.\n"); return; } - pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates, - miSpriteScreenKey); + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); pCursorInfo = MISPRITE(pDev); pCursor = pCursorInfo->pCursor; From a232116b9ecd41ce55f8eeee9dfe2b67d76479d6 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 27 Mar 2009 11:41:40 -0400 Subject: [PATCH 11/52] misprite: Fix a typo --- mi/misprite.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mi/misprite.c b/mi/misprite.c index b23adb7ef..a8731f10b 100644 --- a/mi/misprite.c +++ b/mi/misprite.c @@ -111,8 +111,8 @@ miSpriteIsDown(miCursorInfoPtr pDevCursor) static int miSpriteScreenKeyIndex; static DevPrivateKey miSpriteScreenKey = &miSpriteScreenKeyIndex; -static int mmiSpriteDevPrivatesKeyIndex; -static DevPrivateKey miSpriteDevPrivatesKey = &mmiSpriteDevPrivatesKeyIndex; +static int miSpriteDevPrivatesKeyIndex; +static DevPrivateKey miSpriteDevPrivatesKey = &miSpriteDevPrivatesKeyIndex; static Bool miSpriteCloseScreen(int i, ScreenPtr pScreen); static void miSpriteGetImage(DrawablePtr pDrawable, int sx, int sy, From 8beced6c02610444105f3d0b8ee3a49e1072096d Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 27 Mar 2009 11:43:33 -0400 Subject: [PATCH 12/52] misprite: RECT_IN_REGION -> miRectIn --- mi/misprite.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/mi/misprite.c b/mi/misprite.c index a8731f10b..ebd137ed9 100644 --- a/mi/misprite.c +++ b/mi/misprite.c @@ -198,8 +198,7 @@ miSpriteReportDamage (DamagePtr pDamage, RegionPtr pRegion, void *closure) if (pCursorInfo->isUp && pCursorInfo->pScreen == pScreen && - RECT_IN_REGION (pScreen, pRegion, &pCursorInfo->saved) - != rgnOUT) + miRectIn(pRegion, &pCursorInfo->saved) != rgnOUT) { SPRITE_DEBUG(("Damage remove\n")); miSpriteRemoveCursor (pDev, pScreen); @@ -465,7 +464,7 @@ miSpriteCopyWindow (WindowPtr pWindow, DDXPointRec ptOldOrg, RegionPtr prgnSrc) * Damage will take care of destination check */ if (pCursorInfo->isUp && pCursorInfo->pScreen == pScreen && - RECT_IN_REGION (pScreen, prgnSrc, &pCursorInfo->saved) != rgnOUT) + miRectIn(prgnSrc, &pCursorInfo->saved) != rgnOUT) { SPRITE_DEBUG (("CopyWindow remove\n")); miSpriteRemoveCursor (pDev, pScreen); From 2c000f4980d30015e6da95de3c77c0fdda0090e4 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 27 Mar 2009 11:54:52 -0400 Subject: [PATCH 13/52] misprite: Do window check first for Get{Image,Spans} too --- mi/misprite.c | 78 ++++++++++++++++++++++++++------------------------- 1 file changed, 40 insertions(+), 38 deletions(-) diff --git a/mi/misprite.c b/mi/misprite.c index ebd137ed9..ff727d551 100644 --- a/mi/misprite.c +++ b/mi/misprite.c @@ -329,21 +329,22 @@ miSpriteGetImage (DrawablePtr pDrawable, int sx, int sy, int w, int h, SCREEN_PROLOGUE (pScreen, GetImage); - pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); - for(pDev = inputInfo.devices; pDev; pDev = pDev->next) + if (pDrawable->type == DRAWABLE_WINDOW) { - if (DevHasCursor(pDev)) + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates,miSpriteScreenKey); + for(pDev = inputInfo.devices; pDev; pDev = pDev->next) { - pCursorInfo = MISPRITE(pDev); - if (pDrawable->type == DRAWABLE_WINDOW && - pCursorInfo->isUp && - pCursorInfo->pScreen == pScreen && - ORG_OVERLAP(&pCursorInfo->saved,pDrawable->x,pDrawable->y, - sx, sy, w, h)) - { - SPRITE_DEBUG (("GetImage remove\n")); - miSpriteRemoveCursor (pDev, pScreen); - } + if (DevHasCursor(pDev)) + { + pCursorInfo = MISPRITE(pDev); + if (pCursorInfo->isUp && pCursorInfo->pScreen == pScreen && + ORG_OVERLAP(&pCursorInfo->saved,pDrawable->x,pDrawable->y, + sx, sy, w, h)) + { + SPRITE_DEBUG (("GetImage remove\n")); + miSpriteRemoveCursor (pDev, pScreen); + } + } } } @@ -364,37 +365,38 @@ miSpriteGetSpans (DrawablePtr pDrawable, int wMax, DDXPointPtr ppt, SCREEN_PROLOGUE (pScreen, GetSpans); - pScreenPriv = dixLookupPrivate(&pScreen->devPrivates, miSpriteScreenKey); - - for(pDev = inputInfo.devices; pDev; pDev = pDev->next) + if (pDrawable->type == DRAWABLE_WINDOW) { - if (DevHasCursor(pDev)) + pScreenPriv = dixLookupPrivate(&pScreen->devPrivates,miSpriteScreenKey); + + for(pDev = inputInfo.devices; pDev; pDev = pDev->next) { - pCursorInfo = MISPRITE(pDev); - - if (pDrawable->type == DRAWABLE_WINDOW && - pCursorInfo->isUp && - pCursorInfo->pScreen == pScreen) + if (DevHasCursor(pDev)) { - DDXPointPtr pts; - int *widths; - int nPts; - int xorg, - yorg; + pCursorInfo = MISPRITE(pDev); - xorg = pDrawable->x; - yorg = pDrawable->y; - - for (pts = ppt, widths = pwidth, nPts = nspans; - nPts--; - pts++, widths++) + if (pCursorInfo->isUp && pCursorInfo->pScreen == pScreen) { - if (SPN_OVERLAP(&pCursorInfo->saved,pts->y+yorg, - pts->x+xorg,*widths)) + DDXPointPtr pts; + int *widths; + int nPts; + int xorg, + yorg; + + xorg = pDrawable->x; + yorg = pDrawable->y; + + for (pts = ppt, widths = pwidth, nPts = nspans; + nPts--; + pts++, widths++) { - SPRITE_DEBUG (("GetSpans remove\n")); - miSpriteRemoveCursor (pDev, pScreen); - break; + if (SPN_OVERLAP(&pCursorInfo->saved,pts->y+yorg, + pts->x+xorg,*widths)) + { + SPRITE_DEBUG (("GetSpans remove\n")); + miSpriteRemoveCursor (pDev, pScreen); + break; + } } } } From bb89fc2771d2e54d7e0cd0371db68ddb754a64e5 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 27 Mar 2009 12:36:42 -0400 Subject: [PATCH 14/52] misprite: Fix software cursor on multiple ScreenRecs --- mi/misprite.c | 17 ++++++----------- mi/mispritest.h | 1 + 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/mi/misprite.c b/mi/misprite.c index ff727d551..81a0b9d58 100644 --- a/mi/misprite.c +++ b/mi/misprite.c @@ -56,8 +56,6 @@ in this Software without prior written authorization from The Open Group. #endif # include "damage.h" - - #define SPRITE_DEBUG_ENABLE 0 #if SPRITE_DEBUG_ENABLE #define SPRITE_DEBUG(x) ErrorF x @@ -65,29 +63,26 @@ in this Software without prior written authorization from The Open Group. #define SPRITE_DEBUG(x) #endif - #define MISPRITE(dev) \ ((DevHasCursor(dev)) ? \ (miCursorInfoPtr)dixLookupPrivate(&dev->devPrivates, miSpriteDevPrivatesKey) : \ (miCursorInfoPtr)dixLookupPrivate(&dev->u.master->devPrivates, miSpriteDevPrivatesKey)) -static int damageRegister = 0; - static void miSpriteDisableDamage(ScreenPtr pScreen, miSpriteScreenPtr pScreenPriv) { - if (damageRegister) { + if (pScreenPriv->damageRegistered) { DamageUnregister (&(pScreen->GetScreenPixmap(pScreen)->drawable), pScreenPriv->pDamage); - damageRegister = 0; + pScreenPriv->damageRegistered = 0; } } static void miSpriteEnableDamage(ScreenPtr pScreen, miSpriteScreenPtr pScreenPriv) { - if (!damageRegister) { - damageRegister = 1; + if (!pScreenPriv->damageRegistered) { + pScreenPriv->damageRegistered = 1; DamageRegister (&(pScreen->GetScreenPixmap(pScreen)->drawable), pScreenPriv->pDamage); } @@ -269,6 +264,8 @@ miSpriteInitialize (ScreenPtr pScreen, pScreenPriv->colors[MASK_COLOR].red = 0; pScreenPriv->colors[MASK_COLOR].green = 0; pScreenPriv->colors[MASK_COLOR].blue = 0; + pScreenPriv->damageRegistered = 0; + dixSetPrivate(&pScreen->devPrivates, miSpriteScreenKey, pScreenPriv); pScreen->CloseScreen = miSpriteCloseScreen; @@ -282,8 +279,6 @@ miSpriteInitialize (ScreenPtr pScreen, pScreen->BlockHandler = miSpriteBlockHandler; - damageRegister = 0; - return TRUE; } diff --git a/mi/mispritest.h b/mi/mispritest.h index 232cdaffe..1b24f262b 100644 --- a/mi/mispritest.h +++ b/mi/mispritest.h @@ -87,6 +87,7 @@ typedef struct { VisualPtr pVisual; miSpriteCursorFuncPtr funcs; DamagePtr pDamage; /* damage tracking structure */ + Bool damageRegistered; } miSpriteScreenRec, *miSpriteScreenPtr; #define SOURCE_COLOR 0 From 17239c8e3163fef0159835d43c0dde20e78192a1 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 27 Mar 2009 12:44:20 -0400 Subject: [PATCH 15/52] misprite: Remove private header, fold into misprite.c --- mi/Makefile.am | 1 - mi/misprite.c | 121 +++++++++++++++++++++++++++++++++++++-------- mi/mispritest.h | 128 ------------------------------------------------ 3 files changed, 100 insertions(+), 150 deletions(-) delete mode 100644 mi/mispritest.h diff --git a/mi/Makefile.am b/mi/Makefile.am index 979cc3980..9714a21ca 100644 --- a/mi/Makefile.am +++ b/mi/Makefile.am @@ -57,7 +57,6 @@ libmi_la_SOURCES = \ mispans.h \ misprite.c \ misprite.h \ - mispritest.h \ mistruct.h \ mivaltree.c \ mivalidate.h \ diff --git a/mi/misprite.c b/mi/misprite.c index 81a0b9d58..a2abbc222 100644 --- a/mi/misprite.c +++ b/mi/misprite.c @@ -33,28 +33,107 @@ in this Software without prior written authorization from The Open Group. #include #endif -# include -# include -# include "misc.h" -# include "pixmapstr.h" -# include "input.h" -# include "mi.h" -# include "cursorstr.h" -# include -# include "scrnintstr.h" -# include "colormapst.h" -# include "windowstr.h" -# include "gcstruct.h" -# include "mipointer.h" -# include "mispritest.h" -# include "dixfontstr.h" -# include -# include "inputstr.h" +#include +#include +#include "misc.h" +#include "pixmapstr.h" +#include "input.h" +#include "mi.h" +#include "cursorstr.h" +#include +#include "scrnintstr.h" +#include "colormapst.h" +#include "windowstr.h" +#include "gcstruct.h" +#include "mipointer.h" +#include "misprite.h" +#include "dixfontstr.h" +#include +#include "inputstr.h" +#include "damage.h" + +typedef struct { + CursorPtr pCursor; + int x; /* cursor hotspot */ + int y; + BoxRec saved; /* saved area from the screen */ + Bool isUp; /* cursor in frame buffer */ + Bool shouldBeUp; /* cursor should be displayed */ + WindowPtr pCacheWin; /* window the cursor last seen in */ + Bool isInCacheWin; + Bool checkPixels; /* check colormap collision */ + ScreenPtr pScreen; +} miCursorInfoRec, *miCursorInfoPtr; + +/* + * per screen information + */ + +typedef struct { + /* screen procedures */ + CloseScreenProcPtr CloseScreen; + GetImageProcPtr GetImage; + GetSpansProcPtr GetSpans; + SourceValidateProcPtr SourceValidate; + + /* window procedures */ + CopyWindowProcPtr CopyWindow; + + /* colormap procedures */ + InstallColormapProcPtr InstallColormap; + StoreColorsProcPtr StoreColors; + + /* os layer procedures */ + ScreenBlockHandlerProcPtr BlockHandler; + + /* device cursor procedures */ + DeviceCursorInitializeProcPtr DeviceCursorInitialize; + DeviceCursorCleanupProcPtr DeviceCursorCleanup; + + xColorItem colors[2]; + ColormapPtr pInstalledMap; + ColormapPtr pColormap; + VisualPtr pVisual; + miSpriteCursorFuncPtr funcs; + DamagePtr pDamage; /* damage tracking structure */ + Bool damageRegistered; +} miSpriteScreenRec, *miSpriteScreenPtr; + +#define SOURCE_COLOR 0 +#define MASK_COLOR 1 + +/* + * Overlap BoxPtr and Box elements + */ +#define BOX_OVERLAP(pCbox,X1,Y1,X2,Y2) \ + (((pCbox)->x1 <= (X2)) && ((X1) <= (pCbox)->x2) && \ + ((pCbox)->y1 <= (Y2)) && ((Y1) <= (pCbox)->y2)) + +/* + * Overlap BoxPtr, origins, and rectangle + */ +#define ORG_OVERLAP(pCbox,xorg,yorg,x,y,w,h) \ + BOX_OVERLAP((pCbox),(x)+(xorg),(y)+(yorg),(x)+(xorg)+(w),(y)+(yorg)+(h)) + +/* + * Overlap BoxPtr, origins and RectPtr + */ +#define ORGRECT_OVERLAP(pCbox,xorg,yorg,pRect) \ + ORG_OVERLAP((pCbox),(xorg),(yorg),(pRect)->x,(pRect)->y, \ + (int)((pRect)->width), (int)((pRect)->height)) +/* + * Overlap BoxPtr and horizontal span + */ +#define SPN_OVERLAP(pCbox,y,x,w) BOX_OVERLAP((pCbox),(x),(y),(x)+(w),(y)) + +#define LINE_SORT(x1,y1,x2,y2) \ +{ int _t; \ + if (x1 > x2) { _t = x1; x1 = x2; x2 = _t; } \ + if (y1 > y2) { _t = y1; y1 = y2; y2 = _t; } } + +#define LINE_OVERLAP(pCbox,x1,y1,x2,y2,lw2) \ + BOX_OVERLAP((pCbox), (x1)-(lw2), (y1)-(lw2), (x2)+(lw2), (y2)+(lw2)) -#ifdef RENDER -# include "mipict.h" -#endif -# include "damage.h" #define SPRITE_DEBUG_ENABLE 0 #if SPRITE_DEBUG_ENABLE diff --git a/mi/mispritest.h b/mi/mispritest.h deleted file mode 100644 index 1b24f262b..000000000 --- a/mi/mispritest.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - * mispritest.h - * - * mi sprite structures - */ - - -/* - -Copyright 1989, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -Except as contained in this notice, the name of The Open Group shall not be -used in advertising or otherwise to promote the sale, use or other dealings -in this Software without prior written authorization from The Open Group. -*/ - -#ifdef HAVE_DIX_CONFIG_H -#include -#endif - -#ifndef _MISPRITEST_H_ -#define _MISPRITEST_H_ - -# include "misprite.h" -#ifdef RENDER -# include "picturestr.h" -#endif -# include "damage.h" - -typedef struct { - CursorPtr pCursor; - int x; /* cursor hotspot */ - int y; - BoxRec saved; /* saved area from the screen */ - Bool isUp; /* cursor in frame buffer */ - Bool shouldBeUp; /* cursor should be displayed */ - WindowPtr pCacheWin; /* window the cursor last seen in */ - Bool isInCacheWin; - Bool checkPixels; /* check colormap collision */ - ScreenPtr pScreen; -} miCursorInfoRec, *miCursorInfoPtr; - -/* - * per screen information - */ - -typedef struct { - /* screen procedures */ - CloseScreenProcPtr CloseScreen; - GetImageProcPtr GetImage; - GetSpansProcPtr GetSpans; - SourceValidateProcPtr SourceValidate; - - /* window procedures */ - CopyWindowProcPtr CopyWindow; - - /* colormap procedures */ - InstallColormapProcPtr InstallColormap; - StoreColorsProcPtr StoreColors; - - /* os layer procedures */ - ScreenBlockHandlerProcPtr BlockHandler; - - /* device cursor procedures */ - DeviceCursorInitializeProcPtr DeviceCursorInitialize; - DeviceCursorCleanupProcPtr DeviceCursorCleanup; - - xColorItem colors[2]; - ColormapPtr pInstalledMap; - ColormapPtr pColormap; - VisualPtr pVisual; - miSpriteCursorFuncPtr funcs; - DamagePtr pDamage; /* damage tracking structure */ - Bool damageRegistered; -} miSpriteScreenRec, *miSpriteScreenPtr; - -#define SOURCE_COLOR 0 -#define MASK_COLOR 1 - -/* - * Overlap BoxPtr and Box elements - */ -#define BOX_OVERLAP(pCbox,X1,Y1,X2,Y2) \ - (((pCbox)->x1 <= (X2)) && ((X1) <= (pCbox)->x2) && \ - ((pCbox)->y1 <= (Y2)) && ((Y1) <= (pCbox)->y2)) - -/* - * Overlap BoxPtr, origins, and rectangle - */ -#define ORG_OVERLAP(pCbox,xorg,yorg,x,y,w,h) \ - BOX_OVERLAP((pCbox),(x)+(xorg),(y)+(yorg),(x)+(xorg)+(w),(y)+(yorg)+(h)) - -/* - * Overlap BoxPtr, origins and RectPtr - */ -#define ORGRECT_OVERLAP(pCbox,xorg,yorg,pRect) \ - ORG_OVERLAP((pCbox),(xorg),(yorg),(pRect)->x,(pRect)->y, \ - (int)((pRect)->width), (int)((pRect)->height)) -/* - * Overlap BoxPtr and horizontal span - */ -#define SPN_OVERLAP(pCbox,y,x,w) BOX_OVERLAP((pCbox),(x),(y),(x)+(w),(y)) - -#define LINE_SORT(x1,y1,x2,y2) \ -{ int _t; \ - if (x1 > x2) { _t = x1; x1 = x2; x2 = _t; } \ - if (y1 > y2) { _t = y1; y1 = y2; y2 = _t; } } - -#define LINE_OVERLAP(pCbox,x1,y1,x2,y2,lw2) \ - BOX_OVERLAP((pCbox), (x1)-(lw2), (y1)-(lw2), (x2)+(lw2), (y2)+(lw2)) - -#endif /* _MISPRITEST_H_ */ From 8e7facfe3013abda12a0c39ad8b4d025618077a7 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 27 Mar 2009 15:48:17 -0400 Subject: [PATCH 16/52] config: Fall back to vesa for Intel Poulsbo. --- hw/xfree86/common/xf86AutoConfig.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c index 29b58e9d2..ada1ca5f4 100644 --- a/hw/xfree86/common/xf86AutoConfig.c +++ b/hw/xfree86/common/xf86AutoConfig.c @@ -172,6 +172,8 @@ videoPtrToDriverList(struct pci_device *dev, case 0x8086: if ((dev->device_id == 0x00d1) || (dev->device_id == 0x7800)) { driverList[0] = "i740"; + } else if (dev->device_id == 0x8108) { + break; /* "hooray" for poulsbo */ } else { driverList[0] = "intel"; driverList[1] = "i810"; From 283a081572d8db787c77d09e5ba6bcadebf4f7fe Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 27 Mar 2009 15:56:15 -0400 Subject: [PATCH 17/52] selinux: Only activate if policy says to be an object manager --- Xext/xselinux.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Xext/xselinux.c b/Xext/xselinux.c index dfeef2f21..4a1fe004b 100644 --- a/Xext/xselinux.c +++ b/Xext/xselinux.c @@ -1971,6 +1971,10 @@ SELinuxExtensionInit(INITARGS) return; } + /* Don't init unless there's something to do */ + if (!security_get_boolean_active("xserver_object_manager")) + return; + /* Check SELinux mode in configuration file */ switch(selinuxEnforcingState) { case SELINUX_MODE_DISABLED: From c74220b853cd99d03e33cc62d32431ca3a879483 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 30 Mar 2009 14:56:15 -0400 Subject: [PATCH 18/52] APM: Use general handlers, not input handlers. Otherwise APM events get treated as input events, which messes up idle time accounting and screensavers and such. Not, we hope, that anyone is using APM anymore. --- hw/xfree86/os-support/bsd/bsd_apm.c | 4 ++-- hw/xfree86/os-support/bsd/bsd_kqueue_apm.c | 4 ++-- hw/xfree86/os-support/linux/lnx_apm.c | 4 ++-- hw/xfree86/os-support/solaris/sun_apm.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/hw/xfree86/os-support/bsd/bsd_apm.c b/hw/xfree86/os-support/bsd/bsd_apm.c index 43eda7421..73c88dca3 100644 --- a/hw/xfree86/os-support/bsd/bsd_apm.c +++ b/hw/xfree86/os-support/bsd/bsd_apm.c @@ -122,7 +122,7 @@ xf86OSPMOpen(void) } xf86PMGetEventFromOs = bsdPMGetEventFromOS; xf86PMConfirmEventToOs = bsdPMConfirmEventToOs; - APMihPtr = xf86AddInputHandler(fd, xf86HandlePMEvents, NULL); + APMihPtr = xf86AddGeneralHandler(fd, xf86HandlePMEvents, NULL); return bsdCloseAPM; } @@ -132,7 +132,7 @@ bsdCloseAPM(void) int fd; if (APMihPtr) { - fd = xf86RemoveInputHandler(APMihPtr); + fd = xf86RemoveGeneralHandler(APMihPtr); close(fd); APMihPtr = NULL; } diff --git a/hw/xfree86/os-support/bsd/bsd_kqueue_apm.c b/hw/xfree86/os-support/bsd/bsd_kqueue_apm.c index b37070c37..053619e1d 100644 --- a/hw/xfree86/os-support/bsd/bsd_kqueue_apm.c +++ b/hw/xfree86/os-support/bsd/bsd_kqueue_apm.c @@ -178,7 +178,7 @@ xf86OSPMOpen(void) xf86PMGetEventFromOs = bsdPMGetEventFromOS; xf86PMConfirmEventToOs = bsdPMConfirmEventToOs; - APMihPtr = xf86AddInputHandler(kq, xf86HandlePMEvents, NULL); + APMihPtr = xf86AddGeneralHandler(kq, xf86HandlePMEvents, NULL); return bsdCloseAPM; } @@ -188,7 +188,7 @@ bsdCloseAPM(void) int kq; if (APMihPtr) { - kq = xf86RemoveInputHandler(APMihPtr); + kq = xf86RemoveGeneralHandler(APMihPtr); close(devFd); devFd = -1; close(kq); diff --git a/hw/xfree86/os-support/linux/lnx_apm.c b/hw/xfree86/os-support/linux/lnx_apm.c index 16ac80db8..8cf318f2a 100644 --- a/hw/xfree86/os-support/linux/lnx_apm.c +++ b/hw/xfree86/os-support/linux/lnx_apm.c @@ -180,7 +180,7 @@ lnxAPMOpen(void) close(pfd); xf86PMGetEventFromOs = lnxPMGetEventFromOs; xf86PMConfirmEventToOs = lnxPMConfirmEventToOs; - APMihPtr = xf86AddInputHandler(fd,xf86HandlePMEvents,NULL); + APMihPtr = xf86AddGeneralHandler(fd, xf86HandlePMEvents, NULL); xf86MsgVerb(X_INFO,3,"Open APM successful\n"); return lnxCloseAPM; } @@ -197,7 +197,7 @@ lnxCloseAPM(void) ErrorF("APM: Closing device\n"); #endif if (APMihPtr) { - fd = xf86RemoveInputHandler(APMihPtr); + fd = xf86RemoveGeneralHandler(APMihPtr); close(fd); APMihPtr = NULL; } diff --git a/hw/xfree86/os-support/solaris/sun_apm.c b/hw/xfree86/os-support/solaris/sun_apm.c index 7decc900f..e128c13d0 100644 --- a/hw/xfree86/os-support/solaris/sun_apm.c +++ b/hw/xfree86/os-support/solaris/sun_apm.c @@ -215,7 +215,7 @@ xf86OSPMOpen(void) } xf86PMGetEventFromOs = sunPMGetEventFromOS; xf86PMConfirmEventToOs = sunPMConfirmEventToOs; - APMihPtr = xf86AddInputHandler(fd, xf86HandlePMEvents, NULL); + APMihPtr = xf86AddGeneralHandler(fd, xf86HandlePMEvents, NULL); return sunCloseAPM; } @@ -225,7 +225,7 @@ sunCloseAPM(void) int fd; if (APMihPtr) { - fd = xf86RemoveInputHandler(APMihPtr); + fd = xf86RemoveGeneralHandler(APMihPtr); close(fd); APMihPtr = NULL; } From 0b6e14d46feaf8c46fd3768ee5353b844391b79b Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Mon, 30 Mar 2009 20:37:25 -0700 Subject: [PATCH 19/52] XQuartz: Fix mouse tracking for quake, et. al. in wine Patch courtesy of Codeweavers Fix mouse movement tracking. For a non-window-related mouse-move event, calculate the new position by adding the event's delta-x and delta-y values to the previous mouse position. Do not rely on the current mouse position because it may have been changed by a XWarpPointer call. (cherry picked from commit 7a67935b05a475215b9bdbb959e4f7e15f32416f) --- hw/xquartz/X11Application.m | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index b82c89ff2..6a0e011c7 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -961,26 +961,34 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe DeviceIntPtr pDev; int modifierFlags; + static NSPoint lastpt; + /* convert location to be relative to top-left of primary display */ - location = [e locationInWindow]; window = [e window]; - screen = [[[NSScreen screens] objectAtIndex:0] frame]; if (window != nil) { NSRect frame = [window frame]; - pointer_x = location.x + frame.origin.x; - pointer_y = (screen.origin.y + screen.size.height) - - (location.y + frame.origin.y); + location = [e locationInWindow]; + location.x += frame.origin.x; + location.y += frame.origin.y; + lastpt = location; } else { - pointer_x = location.x; - pointer_y = (screen.origin.y + screen.size.height) - location.y; + location.x = lastpt.x + [e deltaX]; + location.y = lastpt.y - [e deltaY]; + lastpt = [NSEvent mouseLocation]; } - + + /* Convert coordinate system */ + screen = [[[NSScreen screens] objectAtIndex:0] frame]; + location.y = (screen.origin.y + screen.size.height) - location.y; + /* Setup our valuators. These will range from 0 to 1 */ pressure = 0; tilt_x = 0; tilt_y = 0; - + pointer_x = location.x; + pointer_y = location.y; + modifierFlags = [e modifierFlags]; #ifdef NX_DEVICELCMDKEYMASK From 252ec504817e05b185e4896a2d899e9c00b8aeef Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 30 Mar 2009 15:18:30 -0400 Subject: [PATCH 20/52] Document which bits of ClientRec are currently unused --- include/dixstruct.h | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/include/dixstruct.h b/include/dixstruct.h index 8bafcde0e..7335fad95 100644 --- a/include/dixstruct.h +++ b/include/dixstruct.h @@ -89,6 +89,7 @@ typedef struct _Window *SaveSetElt; #define SaveSetAssignMap(ss,m) #endif +/* The unused_ members are ABI spacing. Please reuse them. */ typedef struct _Client { int index; Mask clientAsMask; @@ -104,7 +105,7 @@ typedef struct _Client { * killed */ SaveSetElt *saveSet; int numSaved; - pointer screenPrivate[MAXSCREENS]; + void *unused_screenPrivate[16]; int (**requestVector) ( ClientPtr /* pClient */); CARD32 req_len; /* length of current request */ @@ -118,15 +119,9 @@ typedef struct _Client { unsigned short vMajor,vMinor; KeyCode minKC,maxKC; -#ifdef DEBUG - unsigned char requestLog[MAX_REQUEST_LOG]; - int requestLogIndex; -#endif unsigned long replyBytesRemaining; - void *appgroup; /* Can't remove, ABI */ - struct _FontResolution * (*fontResFunc) ( /* no need for font.h */ - ClientPtr /* pClient */, - int * /* num */); + void *unused_appgroup; + void *unused_fontResFunc; int smart_priority; long smart_start_tick; long smart_stop_tick; From 2e145989d10ef454581f8aa60358ed3782fd6442 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 30 Mar 2009 17:22:28 -0400 Subject: [PATCH 21/52] dix: Simplify InitClient() --- dix/dispatch.c | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/dix/dispatch.c b/dix/dispatch.c index 0ed95df8b..a9f936707 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -3459,37 +3459,16 @@ KillAllClients(void) void InitClient(ClientPtr client, int i, pointer ospriv) { + memset(client, 0, sizeof(*client)); client->index = i; - client->sequence = 0; client->clientAsMask = ((Mask)i) << CLIENTOFFSET; - client->clientGone = FALSE; client->closeDownMode = i ? DestroyAll : RetainPermanent; - client->numSaved = 0; - client->saveSet = (SaveSetElt *)NULL; - client->noClientException = Success; -#ifdef DEBUG - client->requestLogIndex = 0; -#endif client->requestVector = InitialVector; client->osPrivate = ospriv; - client->swapped = FALSE; - client->big_requests = FALSE; - client->priority = 0; - client->clientState = ClientStateInitial; - client->devPrivates = NULL; - client->xkbClientFlags = 0; - client->mapNotifyMask = 0; - client->newKeyboardNotifyMask = 0; - client->vMinor = client->vMajor = 0; QueryMinMaxKeyCodes(&client->minKC,&client->maxKC); - client->replyBytesRemaining = 0; - client->fontResFunc = NULL; - client->smart_priority = 0; client->smart_start_tick = SmartScheduleTime; client->smart_stop_tick = SmartScheduleTime; client->smart_check_tick = SmartScheduleTime; - - client->clientPtr = NULL; } /************************ From 89887fadc97f6fd5059886396a6d7cf61de1982f Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Tue, 31 Mar 2009 15:09:57 -0400 Subject: [PATCH 22/52] APM: Don't carp if not available. --- hw/xfree86/os-support/linux/lnx_apm.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/xfree86/os-support/linux/lnx_apm.c b/hw/xfree86/os-support/linux/lnx_apm.c index 8cf318f2a..9dae00e57 100644 --- a/hw/xfree86/os-support/linux/lnx_apm.c +++ b/hw/xfree86/os-support/linux/lnx_apm.c @@ -184,7 +184,6 @@ lnxAPMOpen(void) xf86MsgVerb(X_INFO,3,"Open APM successful\n"); return lnxCloseAPM; } - xf86MsgVerb(X_INFO,3,"No APM support in BIOS or kernel\n"); return NULL; } From 3311ef6ec93df4325d198715e0fce73af19f0781 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Tue, 31 Mar 2009 18:11:19 -0700 Subject: [PATCH 23/52] XQuartz: Don't report mouse events while X11 is not the foreground application (cherry picked from commit 5d1dd35096334b59564d77caef7a97bd58845c5d) --- hw/xquartz/X11Application.m | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index 6a0e011c7..e459b4cc4 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -1067,15 +1067,14 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe pDev = darwinTabletCurrent; } + if(!quartzServerVisible) { +#if 0 /* Seems this has somehow triggered 100% CPU usage while X11.app is in the * background on some obscure HW configurations. * http://xquartz.macosforge.org/trac/ticket/241 */ -#if 0 +//#if defined(XPLUGIN_VERSION) && XPLUGIN_VERSION > 0 /* Older libXplugin (Tiger/"Stock" Leopard) aren't thread safe, so we can't call xp_find_window from the Appkit thread */ -#ifdef XPLUGIN_VERSION -#if XPLUGIN_VERSION > 0 - if(!quartzServerVisible) { xp_window_id wid; /* Sigh. Need to check that we're really over one of @@ -1088,11 +1087,9 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe if (xp_find_window(pointer_x, pointer_y, 0, &wid) == XP_Success && wid == 0) +#endif return; } -#endif -#endif -#endif DarwinSendPointerEvents(pDev, ev_type, ev_button, pointer_x, pointer_y, pressure, tilt_x, tilt_y); From 7d94414cf4b16501ce4c4291846498f393f150a4 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 1 Apr 2009 09:42:06 -0400 Subject: [PATCH 24/52] input: Remove xf86ReloadInputDevs hack We have input hotplug now, no need to fake it. --- hw/xfree86/common/xf86Events.c | 17 ----------------- hw/xfree86/os-support/linux/lnx_init.c | 1 - hw/xfree86/os-support/xf86_OSproc.h | 1 - 3 files changed, 19 deletions(-) diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c index 9ed28840d..4f84a4c55 100644 --- a/hw/xfree86/common/xf86Events.c +++ b/hw/xfree86/common/xf86Events.c @@ -770,23 +770,6 @@ xf86EnableVTSwitch(Bool new) return old; } -void -xf86ReloadInputDevs(int sig) -{ - InputInfoPtr pInfo; - - signal(sig, (void(*)(int))xf86ReloadInputDevs); - - pInfo = xf86InputDevs; - while (pInfo) { - DisableDevice(pInfo->dev); - EnableDevice(pInfo->dev); - pInfo = pInfo->next; - } - - return; -} - void DDXRingBell(int volume, int pitch, int duration) { xf86OSRingBell(volume, pitch, duration); diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c index 152fae114..a49086b37 100644 --- a/hw/xfree86/os-support/linux/lnx_init.c +++ b/hw/xfree86/os-support/linux/lnx_init.c @@ -286,7 +286,6 @@ xf86OpenConsole(void) } else { /* ShareVTs */ close(xf86Info.consoleFd); } - signal(SIGUSR2, xf86ReloadInputDevs); } else { /* serverGeneration != 1 */ if (!ShareVTs && VTSwitch) { diff --git a/hw/xfree86/os-support/xf86_OSproc.h b/hw/xfree86/os-support/xf86_OSproc.h index 576088800..507db1862 100644 --- a/hw/xfree86/os-support/xf86_OSproc.h +++ b/hw/xfree86/os-support/xf86_OSproc.h @@ -212,7 +212,6 @@ extern _X_EXPORT Bool xf86VTSwitchTo(void); extern _X_EXPORT void xf86VTRequest(int sig); extern _X_EXPORT int xf86ProcessArgument(int, char **, int); extern _X_EXPORT void xf86UseMsg(void); -extern _X_EXPORT void xf86ReloadInputDevs(int sig); extern _X_EXPORT PMClose xf86OSPMOpen(void); #ifdef NEED_OS_RAC_PROTOS From b1dab580bdfb4acfe3feddeda6e760098ec4922a Mon Sep 17 00:00:00 2001 From: Tormod Volden Date: Wed, 1 Apr 2009 19:32:21 +0200 Subject: [PATCH 25/52] xfree86: edid quirk for Philips LCD LP154W01-TLAJ This panel reports its vertical size in cm. X.Org bug#21000 Signed-off-by: Tormod Volden Signed-off-by: Julien Cristau --- hw/xfree86/modes/xf86EdidModes.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/hw/xfree86/modes/xf86EdidModes.c b/hw/xfree86/modes/xf86EdidModes.c index 64f7fe979..59b2bc85f 100644 --- a/hw/xfree86/modes/xf86EdidModes.c +++ b/hw/xfree86/modes/xf86EdidModes.c @@ -155,6 +155,11 @@ static Bool quirk_detailed_v_in_cm (int scrnIndex, xf86MonPtr DDC) DDC->vendor.prod_id == 13600) return TRUE; + /* Bug #21000: LGPhilipsLCD LP154W01-TLAJ */ + if (memcmp (DDC->vendor.name, "LPL", 4) == 0 && + DDC->vendor.prod_id == 47360) + return TRUE; + return FALSE; } From 0603fbc1d3b2db5c25faabbfb5e04914110b4d0e Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Wed, 1 Apr 2009 12:46:51 -0700 Subject: [PATCH 26/52] XQuartz: Pad xAppleDRINotifyEvent to 32bytes to match sizeof(xEvent) (cherry picked from commit 276ee3bb087c772f57a987519aa4d94afeceadaa) --- hw/xquartz/xpr/appledristr.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hw/xquartz/xpr/appledristr.h b/hw/xquartz/xpr/appledristr.h index a3844f090..c569719b7 100644 --- a/hw/xquartz/xpr/appledristr.h +++ b/hw/xquartz/xpr/appledristr.h @@ -157,8 +157,11 @@ typedef struct _AppleDRINotify { CARD32 pad1 B32; CARD32 arg B32; CARD32 pad3 B32; + CARD32 pad4 B32; + CARD32 pad5 B32; + CARD32 pad6 B32; } xAppleDRINotifyEvent; -#define sz_xAppleDRINotifyEvent 20 +#define sz_xAppleDRINotifyEvent 32 typedef struct { From 029307e79a14cad5bde8f1f4a5d0a2f740271f06 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Wed, 1 Apr 2009 13:07:15 -0700 Subject: [PATCH 27/52] XQuartz: Return BadRequest when SendPSN isn't implemented rather than success (cherry picked from commit 49871e99179d5176a1ec516c8f449e2dc219faea) --- hw/xquartz/applewm.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/hw/xquartz/applewm.c b/hw/xquartz/applewm.c index ef67dd482..ebfd256f8 100644 --- a/hw/xquartz/applewm.c +++ b/hw/xquartz/applewm.c @@ -500,11 +500,12 @@ ProcAppleWMSendPSN(register ClientPtr client) REQUEST_SIZE_MATCH(xAppleWMSendPSNReq); - if(appleWMProcs->SendPSN) { - err = appleWMProcs->SendPSN(stuff->psn_hi, stuff->psn_lo); - if (err != Success) { - return err; - } + if(!appleWMProcs->SendPSN) + return BadRequest; + + err = appleWMProcs->SendPSN(stuff->psn_hi, stuff->psn_lo); + if (err != Success) { + return err; } return (client->noClientException); From 9180081ec32b6c655d193de4c89b59d222a72579 Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Wed, 1 Apr 2009 13:45:02 -0700 Subject: [PATCH 28/52] XQuartz: Still send mouse events while X11 is in the background if we have test extensions enabled (cherry picked from commit f393fb686cfbedb11a1539d4eaf5c491af8b3a64) --- hw/xquartz/X11Application.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index e459b4cc4..bd4b27539 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -1067,7 +1067,7 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe pDev = darwinTabletCurrent; } - if(!quartzServerVisible) { + if(!quartzServerVisible && noTestExtensions) { #if 0 /* Seems this has somehow triggered 100% CPU usage while X11.app is in the * background on some obscure HW configurations. From 1c101d75d4855b2698e3fc8d2dd662f20585812f Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Thu, 26 Mar 2009 22:25:08 -0700 Subject: [PATCH 29/52] Don't leak canonical module name and patterns if module is built-in Signed-off-by: Alan Coopersmith Acked-by: Peter Hutterer --- hw/xfree86/loader/loadmod.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c index dbf6c2e46..fccb3b1ae 100644 --- a/hw/xfree86/loader/loadmod.c +++ b/hw/xfree86/loader/loadmod.c @@ -868,7 +868,8 @@ doLoadModule(const char *module, const char *path, const char **subdirlist, if (!strcmp (m, *cim)) { xf86MsgVerb(X_INFO, 3, "Module \"%s\" already built-in\n", m); - return (ModuleDescPtr) 1; + ret = (ModuleDescPtr) 1; + goto LoadModule_exit; } if (!name) { From 91b697efdefba125348dbcaf584ee51a7f8c9bf6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Wed, 1 Apr 2009 17:42:33 -0400 Subject: [PATCH 30/52] Support setTexBuffer2 in AIGLX. Fixes broken GLX_tfp, specifically, lets compositors ignore un-defined alpha channel for pixmaps. --- glx/glxcmds.c | 5 +++++ glx/glxdrawable.h | 1 + glx/glxdri2.c | 13 ++++++++++--- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/glx/glxcmds.c b/glx/glxcmds.c index 8b6dfbc84..80f3a6936 100644 --- a/glx/glxcmds.c +++ b/glx/glxcmds.c @@ -1134,6 +1134,7 @@ static void determineTextureTarget(XID glxDrawableID, CARD32 *attribs, CARD32 numAttribs) { GLenum target = 0; + GLenum format = 0; int i; __GLXdrawable *pGlxDraw; @@ -1150,6 +1151,9 @@ determineTextureTarget(XID glxDrawableID, CARD32 *attribs, CARD32 numAttribs) break; } } + + if (attribs[2 * i] == GLX_TEXTURE_FORMAT_EXT) + format = attribs[2 * i + 1]; } if (!target) { @@ -1162,6 +1166,7 @@ determineTextureTarget(XID glxDrawableID, CARD32 *attribs, CARD32 numAttribs) } pGlxDraw->target = target; + pGlxDraw->format = format; } int __glXDisp_CreateGLXPixmap(__GLXclientState *cl, GLbyte *pc) diff --git a/glx/glxdrawable.h b/glx/glxdrawable.h index 259b11e17..2d787ae78 100644 --- a/glx/glxdrawable.h +++ b/glx/glxdrawable.h @@ -72,6 +72,7 @@ struct __GLXdrawable { int refCount; GLenum target; + GLenum format; /* ** Event mask diff --git a/glx/glxdri2.c b/glx/glxdri2.c index b12293acb..4df406b5a 100644 --- a/glx/glxdri2.c +++ b/glx/glxdri2.c @@ -251,9 +251,16 @@ __glXDRIbindTexImage(__GLXcontext *baseContext, if (texBuffer == NULL) return Success; - texBuffer->setTexBuffer(context->driContext, - glxPixmap->target, - drawable->driDrawable); + if (texBuffer->base.version >= 2 && texBuffer->setTexBuffer2 != NULL) { + (*texBuffer->setTexBuffer2)(context->driContext, + glxPixmap->target, + glxPixmap->format, + drawable->driDrawable); + } else { + texBuffer->setTexBuffer(context->driContext, + glxPixmap->target, + drawable->driDrawable); + } return Success; } From d2690375dfd994817f004cda133ca2a492c0b956 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 3 Apr 2009 11:06:50 -0400 Subject: [PATCH 31/52] kdrive: s/KdSaveString/strdup/g This isn't even funny anymore. --- hw/kdrive/ephyr/ephyr.c | 4 ++-- hw/kdrive/linux/bus.c | 2 +- hw/kdrive/linux/evdev.c | 6 +++--- hw/kdrive/linux/keyboard.c | 4 ++-- hw/kdrive/linux/mouse.c | 2 +- hw/kdrive/linux/ms.c | 4 ++-- hw/kdrive/linux/ps2.c | 4 ++-- hw/kdrive/linux/tslib.c | 2 +- hw/kdrive/src/kdrive.c | 11 ----------- hw/kdrive/src/kdrive.h | 4 +--- hw/kdrive/src/kinfo.c | 2 +- hw/kdrive/src/kinput.c | 14 +++++++------- 12 files changed, 23 insertions(+), 36 deletions(-) diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c index fc3d940be..345ae5b91 100644 --- a/hw/kdrive/ephyr/ephyr.c +++ b/hw/kdrive/ephyr/ephyr.c @@ -1073,7 +1073,7 @@ MouseInit (KdPointerInfo *pi) ((EphyrPointerPrivate *)pi->driverPrivate)->enabled = FALSE; pi->nAxes = 3; pi->nButtons = 32; - pi->name = KdSaveString("Xephyr virtual mouse"); + pi->name = strdup("Xephyr virtual mouse"); ephyrMouse = pi; return Success; } @@ -1127,7 +1127,7 @@ EphyrKeyboardInit (KdKeyboardInfo *ki) ki->keySyms.mapWidth = ephyrKeySyms.mapWidth; xfree(ki->keySyms.map); ki->keySyms.map = ephyrKeySyms.map; - ki->name = KdSaveString("Xephyr virtual keyboard"); + ki->name = strdup("Xephyr virtual keyboard"); ephyrKbd = ki; return Success; } diff --git a/hw/kdrive/linux/bus.c b/hw/kdrive/linux/bus.c index a0d9b12ee..ba8a6cd43 100644 --- a/hw/kdrive/linux/bus.c +++ b/hw/kdrive/linux/bus.c @@ -77,7 +77,7 @@ BusInit (KdPointerInfo *pi) close(fd); if (pi->path) xfree(pi->path); - pi->path = KdSaveString(BusNames[i]); + pi->path = strdup(BusNames[i]); return Success; } } diff --git a/hw/kdrive/linux/evdev.c b/hw/kdrive/linux/evdev.c index fcec0f89f..e831c9a1b 100644 --- a/hw/kdrive/linux/evdev.c +++ b/hw/kdrive/linux/evdev.c @@ -209,7 +209,7 @@ EvdevPtrInit (KdPointerInfo *pi) for (i = 0; i < NUM_DEFAULT_EVDEV; i++) { fd = open (kdefaultEvdev[i], 2); if (fd >= 0) { - pi->path = KdSaveString (kdefaultEvdev[i]); + pi->path = strdup (kdefaultEvdev[i]); break; } } @@ -224,7 +224,7 @@ EvdevPtrInit (KdPointerInfo *pi) close(fd); - pi->name = KdSaveString("Evdev mouse"); + pi->name = strdup("Evdev mouse"); return Success; } @@ -411,7 +411,7 @@ EvdevKbdInit (KdKeyboardInfo *ki) close (fd); - ki->name = KdSaveString("Evdev keyboard"); + ki->name = strdup("Evdev keyboard"); readMapping(ki); diff --git a/hw/kdrive/linux/keyboard.c b/hw/kdrive/linux/keyboard.c index d36c31d77..28ece3d9b 100644 --- a/hw/kdrive/linux/keyboard.c +++ b/hw/kdrive/linux/keyboard.c @@ -737,10 +737,10 @@ LinuxKeyboardInit (KdKeyboardInfo *ki) if (ki->path) xfree(ki->path); - ki->path = KdSaveString("console"); + ki->path = strdup("console"); if (ki->name) xfree(ki->name); - ki->name = KdSaveString("Linux console keyboard"); + ki->name = strdup("Linux console keyboard"); readKernelMapping (ki); diff --git a/hw/kdrive/linux/mouse.c b/hw/kdrive/linux/mouse.c index f2fae942b..02214b33e 100644 --- a/hw/kdrive/linux/mouse.c +++ b/hw/kdrive/linux/mouse.c @@ -944,7 +944,7 @@ MouseInit (KdPointerInfo *pi) for (i = 0; i < NUM_DEFAULT_MOUSE; i++) { fd = open (kdefaultMouse[i], 2); if (fd >= 0) { - pi->path = KdSaveString (kdefaultMouse[i]); + pi->path = strdup (kdefaultMouse[i]); break; } } diff --git a/hw/kdrive/linux/ms.c b/hw/kdrive/linux/ms.c index 4cf882233..5786ed170 100644 --- a/hw/kdrive/linux/ms.c +++ b/hw/kdrive/linux/ms.c @@ -100,9 +100,9 @@ MsInit (KdPointerInfo *pi) return BadImplementation; if (!pi->path || strcmp(pi->path, "auto")) - pi->path = KdSaveString("/dev/mouse"); + pi->path = strdup("/dev/mouse"); if (!pi->name) - pi->name = KdSaveString("Microsoft protocol mouse"); + pi->name = strdup("Microsoft protocol mouse"); return Success; } diff --git a/hw/kdrive/linux/ps2.c b/hw/kdrive/linux/ps2.c index 31516a721..396758481 100644 --- a/hw/kdrive/linux/ps2.c +++ b/hw/kdrive/linux/ps2.c @@ -123,7 +123,7 @@ Ps2Init (KdPointerInfo *pi) for (i = 0; i < NUM_PS2_NAMES; i++) { ps2Port = open (Ps2Names[i], 0); if (ps2Port >= 0) { - pi->path = KdSaveString (Ps2Names[i]); + pi->path = strdup (Ps2Names[i]); break; } } @@ -137,7 +137,7 @@ Ps2Init (KdPointerInfo *pi) close(ps2Port); if (!pi->name) - pi->name = KdSaveString ("PS/2 Mouse"); + pi->name = strdup ("PS/2 Mouse"); return Success; } diff --git a/hw/kdrive/linux/tslib.c b/hw/kdrive/linux/tslib.c index 7ad7a8814..19c8e84b5 100644 --- a/hw/kdrive/linux/tslib.c +++ b/hw/kdrive/linux/tslib.c @@ -169,7 +169,7 @@ TslibInit (KdPointerInfo *pi) /* hacktastic */ private->phys_screen = 0; pi->nAxes = 3; - pi->name = KdSaveString("Touchscreen"); + pi->name = strdup("Touchscreen"); pi->inputClass = KD_TOUCHSCREEN; return Success; diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c index 97d167e1e..162a3db23 100644 --- a/hw/kdrive/src/kdrive.c +++ b/hw/kdrive/src/kdrive.c @@ -521,17 +521,6 @@ KdParseScreen (KdScreenInfo *screen, * {NMO} Reorder buttons */ -char * -KdSaveString (char *str) -{ - char *n = (char *) xalloc (strlen (str) + 1); - - if (!n) - return 0; - strcpy (n, str); - return n; -} - void KdParseRgba (char *rgba) { diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h index 6a9f493ef..c60559a89 100644 --- a/hw/kdrive/src/kdrive.h +++ b/hw/kdrive/src/kdrive.h @@ -24,6 +24,7 @@ #define _KDRIVE_H_ #include +#include #include #include #include @@ -468,9 +469,6 @@ void KdParseScreen (KdScreenInfo *screen, char *arg); -char * -KdSaveString (char *str); - KdPointerInfo * KdParsePointer (char *arg); diff --git a/hw/kdrive/src/kinfo.c b/hw/kdrive/src/kinfo.c index d592e6803..cb646130e 100644 --- a/hw/kdrive/src/kinfo.c +++ b/hw/kdrive/src/kinfo.c @@ -118,7 +118,7 @@ KdNewPointer (void) if (!pi) return NULL; - pi->name = KdSaveString("Generic Pointer"); + pi->name = strdup("Generic Pointer"); pi->path = NULL; pi->inputClass = KD_MOUSE; pi->driver = NULL; diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c index 2875920ab..4b2d709d6 100644 --- a/hw/kdrive/src/kinput.c +++ b/hw/kdrive/src/kinput.c @@ -870,9 +870,9 @@ KdNewKeyboard (void) ki->bellDuration = 200; ki->next = NULL; ki->options = NULL; - ki->xkbRules = KdSaveString("base"); - ki->xkbModel = KdSaveString("pc105"); - ki->xkbLayout = KdSaveString("us"); + ki->xkbRules = strdup("base"); + ki->xkbModel = strdup("pc105"); + ki->xkbLayout = strdup("us"); ki->xkbVariant = NULL; ki->xkbOptions = NULL; @@ -1065,7 +1065,7 @@ KdParseKbdOptions (KdKeyboardInfo *ki) else if (strcasecmp(option->key, "XkbOptions") == 0) ki->xkbOptions = option->value; else if (!strcasecmp (option->key, "device")) - ki->path = KdSaveString(option->value); + ki->path = strdup(option->value); else ErrorF("Kbd option key (%s) of value (%s) not assigned!\n", option->key, option->value); @@ -1161,7 +1161,7 @@ KdParsePointerOptions (KdPointerInfo *pi) else if (!strcmp (option->key, "rawcoord")) pi->transformCoordinates = FALSE; else if (!strcasecmp (option->key, "device")) - pi->path = KdSaveString(option->value); + pi->path = strdup(option->value); else ErrorF("Pointer option key (%s) of value (%s) not assigned!\n", option->key, option->value); @@ -2280,9 +2280,9 @@ NewInputDeviceRequest(InputOption *options, DeviceIntPtr *pdev) for (option = options; option; option = option->next) { if (strcmp(option->key, "device") == 0) { if (pi && option->value) - pi->path = KdSaveString(option->value); + pi->path = strdup(option->value); else if (ki && option->value) - ki->path = KdSaveString(option->value); + ki->path = strdup(option->value); } else if (strcmp(option->key, "driver") == 0) { if (pi) { From 1731882341c191b4ffd78e0c1fd9297c636e0401 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Fri, 27 Mar 2009 12:30:37 -0400 Subject: [PATCH 32/52] Set bg pixmap of composite overlay window to None (#20912) Otherwise it's impossible to get the COW without a white flash on the screen, because it's on top, mapped immediately, and unaffected by composite redirection. This makes initial login ugly when it doesn't need to be. --- composite/compoverlay.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composite/compoverlay.c b/composite/compoverlay.c index 94e5b0346..68b4f1288 100644 --- a/composite/compoverlay.c +++ b/composite/compoverlay.c @@ -125,13 +125,13 @@ compCreateOverlayWindow (ScreenPtr pScreen) CompScreenPtr cs = GetCompScreen(pScreen); WindowPtr pRoot = WindowTable[pScreen->myNum]; WindowPtr pWin; - XID overrideRedirect = TRUE; + XID attrs[] = { None, TRUE }; /* backPixmap, overrideRedirect */ int result; pWin = cs->pOverlayWin = CreateWindow (cs->overlayWid, pRoot, 0, 0, pScreen->width, pScreen->height, 0, - InputOutput, CWOverrideRedirect, &overrideRedirect, + InputOutput, CWBackPixmap | CWOverrideRedirect, &attrs[0], pRoot->drawable.depth, serverClient, pScreen->rootVisual, &result); if (pWin == NULL) From 4da347adb1fcc39e8f4fb2cadd98e887d7ac877a Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 3 Apr 2009 11:18:21 -0400 Subject: [PATCH 33/52] DPMS: Code motion. --- Xext/dpms.c | 42 ++++++++---------------------------------- 1 file changed, 8 insertions(+), 34 deletions(-) diff --git a/Xext/dpms.c b/Xext/dpms.c index 672cf1764..8464f9e98 100644 --- a/Xext/dpms.c +++ b/Xext/dpms.c @@ -26,13 +26,6 @@ Equipment Corporation. ******************************************************************/ -/* - * HISTORY - * - * @(#)RCSfile: dpms.c,v Revision: 1.1.4.5 (DEC) Date: 1996/03/04 15:27:00 - */ - - #ifdef HAVE_DIX_CONFIG_H #include #endif @@ -50,33 +43,6 @@ Equipment Corporation. #include "dpmsproc.h" #include "modinit.h" -static DISPATCH_PROC(ProcDPMSDispatch); -static DISPATCH_PROC(SProcDPMSDispatch); -static DISPATCH_PROC(ProcDPMSGetVersion); -static DISPATCH_PROC(SProcDPMSGetVersion); -static DISPATCH_PROC(ProcDPMSGetTimeouts); -static DISPATCH_PROC(SProcDPMSGetTimeouts); -static DISPATCH_PROC(ProcDPMSSetTimeouts); -static DISPATCH_PROC(SProcDPMSSetTimeouts); -static DISPATCH_PROC(ProcDPMSEnable); -static DISPATCH_PROC(SProcDPMSEnable); -static DISPATCH_PROC(ProcDPMSDisable); -static DISPATCH_PROC(SProcDPMSDisable); -static DISPATCH_PROC(ProcDPMSForceLevel); -static DISPATCH_PROC(SProcDPMSForceLevel); -static DISPATCH_PROC(ProcDPMSInfo); -static DISPATCH_PROC(SProcDPMSInfo); -static DISPATCH_PROC(ProcDPMSCapable); -static DISPATCH_PROC(SProcDPMSCapable); - -void -DPMSExtensionInit(INITARGS) -{ - AddExtension(DPMSExtensionName, 0, 0, - ProcDPMSDispatch, SProcDPMSDispatch, - NULL, StandardMinorOpcode); -} - static int ProcDPMSGetVersion(ClientPtr client) { @@ -414,3 +380,11 @@ SProcDPMSDispatch (ClientPtr client) return BadRequest; } } + +void +DPMSExtensionInit(INITARGS) +{ + AddExtension(DPMSExtensionName, 0, 0, + ProcDPMSDispatch, SProcDPMSDispatch, + NULL, StandardMinorOpcode); +} From a99b0ab918998c9a1b9f8692591b8cb59a12eb9e Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 3 Apr 2009 11:32:00 -0400 Subject: [PATCH 34/52] DPMS: Fix cast abuse --- hw/xfree86/common/xf86DPMS.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/hw/xfree86/common/xf86DPMS.c b/hw/xfree86/common/xf86DPMS.c index 85be6036a..03a6d0cbf 100644 --- a/hw/xfree86/common/xf86DPMS.c +++ b/hw/xfree86/common/xf86DPMS.c @@ -1,4 +1,3 @@ - /* * Copyright (c) 1997-2003 by The XFree86 Project, Inc. * @@ -71,7 +70,7 @@ xf86DPMSInit(ScreenPtr pScreen, DPMSSetProcPtr set, int flags) xcalloc(sizeof(DPMSRec), 1))) return FALSE; - pDPMS = (DPMSPtr)dixLookupPrivate(&pScreen->devPrivates, DPMSKey); + pDPMS = dixLookupPrivate(&pScreen->devPrivates, DPMSKey); pScrn->DPMSSet = set; pDPMS->Flags = flags; DPMSOpt = xf86FindOption(pScrn->options, "dpms"); @@ -112,7 +111,7 @@ DPMSClose(int i, ScreenPtr pScreen) if (DPMSKey == NULL) return FALSE; - pDPMS = (DPMSPtr)dixLookupPrivate(&pScreen->devPrivates, DPMSKey); + pDPMS = dixLookupPrivate(&pScreen->devPrivates, DPMSKey); /* This shouldn't happen */ if (!pDPMS) @@ -130,7 +129,7 @@ DPMSClose(int i, ScreenPtr pScreen) xf86Screens[i]->DPMSSet(xf86Screens[i],DPMSModeOn,0); } - xfree((pointer)pDPMS); + xfree(pDPMS); dixSetPrivate(&pScreen->devPrivates, DPMSKey, NULL); if (--DPMSCount == 0) DPMSKey = NULL; @@ -164,8 +163,7 @@ DPMSSet(ClientPtr client, int level) /* For each screen, set the DPMS level */ for (i = 0; i < xf86NumScreens; i++) { pScrn = xf86Screens[i]; - pDPMS = (DPMSPtr)dixLookupPrivate(&screenInfo.screens[i]->devPrivates, - DPMSKey); + pDPMS = dixLookupPrivate(&screenInfo.screens[i]->devPrivates, DPMSKey); if (pDPMS && pScrn->DPMSSet && pDPMS->Enabled && pScrn->vtSema) { xf86EnableAccess(pScrn); pScrn->DPMSSet(pScrn, level, 0); @@ -193,8 +191,7 @@ DPMSSupported(void) /* For each screen, check if DPMS is supported */ for (i = 0; i < xf86NumScreens; i++) { pScrn = xf86Screens[i]; - pDPMS = (DPMSPtr)dixLookupPrivate(&screenInfo.screens[i]->devPrivates, - DPMSKey); + pDPMS = dixLookupPrivate(&screenInfo.screens[i]->devPrivates, DPMSKey); if (pDPMS && pScrn->DPMSSet) return TRUE; } From 1c01127a214731a21c4784249a429c74f17bd424 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 3 Apr 2009 11:39:18 -0400 Subject: [PATCH 35/52] DPMS: Unexport all the various setup variables. The drivers don't need to know any of this. --- include/globals.h | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/include/globals.h b/include/globals.h index 5ac3905d0..90cfa7148 100644 --- a/include/globals.h +++ b/include/globals.h @@ -28,18 +28,18 @@ extern _X_EXPORT DDXPointRec dixScreenOrigins[MAXSCREENS]; extern _X_EXPORT char *ConnectionInfo; #ifdef DPMSExtension -extern _X_EXPORT CARD32 defaultDPMSStandbyTime; -extern _X_EXPORT CARD32 defaultDPMSSuspendTime; -extern _X_EXPORT CARD32 defaultDPMSOffTime; -extern _X_EXPORT CARD32 DPMSStandbyTime; -extern _X_EXPORT CARD32 DPMSSuspendTime; -extern _X_EXPORT CARD32 DPMSOffTime; -extern _X_EXPORT CARD16 DPMSPowerLevel; -extern _X_EXPORT Bool defaultDPMSEnabled; -extern _X_EXPORT Bool DPMSEnabled; -extern _X_EXPORT Bool DPMSEnabledSwitch; -extern _X_EXPORT Bool DPMSDisabledSwitch; -extern _X_EXPORT Bool DPMSCapableFlag; +extern CARD32 defaultDPMSStandbyTime; +extern CARD32 defaultDPMSSuspendTime; +extern CARD32 defaultDPMSOffTime; +extern CARD32 DPMSStandbyTime; +extern CARD32 DPMSSuspendTime; +extern CARD32 DPMSOffTime; +extern CARD16 DPMSPowerLevel; +extern Bool defaultDPMSEnabled; +extern Bool DPMSEnabled; +extern Bool DPMSEnabledSwitch; +extern Bool DPMSDisabledSwitch; +extern Bool DPMSCapableFlag; #endif #ifdef PANORAMIX From 38576dc3ae8ddec2baedd2f7e64abdfc56bedf93 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 3 Apr 2009 11:55:41 -0400 Subject: [PATCH 36/52] DPMS: Simplify some macro silliness. --- dix/globals.c | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/dix/globals.c b/dix/globals.c index 258579889..805621a2c 100644 --- a/dix/globals.c +++ b/dix/globals.c @@ -95,25 +95,13 @@ int ScreenSaverBlanking; int ScreenSaverAllowExposures; #ifdef DPMSExtension -# ifndef DEFAULT_STANDBY_TIME -# define DEFAULT_STANDBY_TIME DEFAULT_SCREEN_SAVER_TIME * 2 -# endif -# ifndef DEFAULT_SUSPEND_TIME -# define DEFAULT_SUSPEND_TIME DEFAULT_SCREEN_SAVER_TIME * 3 -# endif -# ifndef DEFAULT_OFF_TIME -# define DEFAULT_OFF_TIME DEFAULT_SCREEN_SAVER_TIME * 4 -# endif -# ifndef DEFAULT_DPMS_ENABLED -# define DEFAULT_DPMS_ENABLED TRUE -# endif -CARD32 defaultDPMSStandbyTime = DEFAULT_STANDBY_TIME; -CARD32 defaultDPMSSuspendTime = DEFAULT_SUSPEND_TIME; -CARD32 defaultDPMSOffTime = DEFAULT_OFF_TIME; +CARD32 defaultDPMSStandbyTime = DEFAULT_SCREEN_SAVER_TIME * 2; +CARD32 defaultDPMSSuspendTime = DEFAULT_SCREEN_SAVER_TIME * 3; +CARD32 defaultDPMSOffTime = DEFAULT_SCREEN_SAVER_TIME * 4; CARD16 DPMSPowerLevel = 0; -Bool defaultDPMSEnabled = DEFAULT_DPMS_ENABLED; +Bool defaultDPMSEnabled = TRUE; Bool DPMSEnabledSwitch = FALSE; /* these denote the DPMS command */ -Bool DPMSDisabledSwitch = FALSE; /* lind switch states */ +Bool DPMSDisabledSwitch = FALSE; /* line switch states */ Bool DPMSCapableFlag = FALSE; CARD32 DPMSStandbyTime; CARD32 DPMSSuspendTime; From d52fddefaeb43f15b677eefbea4a288a9948373b Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 3 Apr 2009 13:33:03 -0400 Subject: [PATCH 37/52] DPMS: Align the default timeouts with the default screensaver timeout. On a typical LCD, a black screensaver is actually worse for power consumption than a normal screen, because it takes more energy to turn the crystals opaque. Also, the intermediate DPMS states are essentially useless and most monitors alias them to the 'off' state, so we may as well do the same. As a pleasant side effect, this brings the default DPMS timeouts in line with the EnergyStar Program Requirements for Computers: http://www.energystar.gov/index.cfm?c=revisions.computer_spec which state that products must be "shipped with the display's Sleep mode set to activate within 15 minutes of user inactivity". --- dix/globals.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dix/globals.c b/dix/globals.c index 805621a2c..aa15de962 100644 --- a/dix/globals.c +++ b/dix/globals.c @@ -95,9 +95,9 @@ int ScreenSaverBlanking; int ScreenSaverAllowExposures; #ifdef DPMSExtension -CARD32 defaultDPMSStandbyTime = DEFAULT_SCREEN_SAVER_TIME * 2; -CARD32 defaultDPMSSuspendTime = DEFAULT_SCREEN_SAVER_TIME * 3; -CARD32 defaultDPMSOffTime = DEFAULT_SCREEN_SAVER_TIME * 4; +CARD32 defaultDPMSStandbyTime = DEFAULT_SCREEN_SAVER_TIME; +CARD32 defaultDPMSSuspendTime = DEFAULT_SCREEN_SAVER_TIME; +CARD32 defaultDPMSOffTime = DEFAULT_SCREEN_SAVER_TIME; CARD16 DPMSPowerLevel = 0; Bool defaultDPMSEnabled = TRUE; Bool DPMSEnabledSwitch = FALSE; /* these denote the DPMS command */ From 2d0a4fff7985f58c21023cc4757090ee67067593 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 3 Apr 2009 13:44:37 -0400 Subject: [PATCH 38/52] DPMS: Remove unused DPMSGet() --- Xext/dpmsproc.h | 2 -- Xext/dpmsstubs.c | 5 ----- hw/kdrive/src/kdrive.c | 6 ------ hw/xfree86/common/xf86.h | 2 -- hw/xfree86/common/xf86DPMS.c | 21 --------------------- 5 files changed, 36 deletions(-) diff --git a/Xext/dpmsproc.h b/Xext/dpmsproc.h index d57f57318..c1df56fdf 100644 --- a/Xext/dpmsproc.h +++ b/Xext/dpmsproc.h @@ -1,4 +1,3 @@ - /* Prototypes for functions that the DDX must provide */ #ifdef HAVE_DIX_CONFIG_H @@ -11,7 +10,6 @@ #include "dixstruct.h" int DPMSSet(ClientPtr client, int level); -int DPMSGet(int *plevel); Bool DPMSSupported(void); #endif diff --git a/Xext/dpmsstubs.c b/Xext/dpmsstubs.c index 0f59d5160..f0f54d293 100644 --- a/Xext/dpmsstubs.c +++ b/Xext/dpmsstubs.c @@ -39,11 +39,6 @@ Bool DPMSSupported(void) return FALSE; } -int DPMSGet(int *plevel) -{ - return -1; -} - int DPMSSet(ClientPtr client, int level) { return Success; diff --git a/hw/kdrive/src/kdrive.c b/hw/kdrive/src/kdrive.c index 162a3db23..76355e8a1 100644 --- a/hw/kdrive/src/kdrive.c +++ b/hw/kdrive/src/kdrive.c @@ -1371,12 +1371,6 @@ DPMSSet(ClientPtr client, int level) { } -int -DPMSGet (int *level) -{ - return -1; -} - Bool DPMSSupported (void) { diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h index eb0ef43fb..0c0320fda 100644 --- a/hw/xfree86/common/xf86.h +++ b/hw/xfree86/common/xf86.h @@ -1,4 +1,3 @@ - /* * Copyright (c) 1997-2003 by The XFree86 Project, Inc. * @@ -175,7 +174,6 @@ extern _X_EXPORT DisplayModePtr xf86CVTMode(int HDisplay, int VDisplay, float VR extern _X_EXPORT Bool xf86DPMSInit(ScreenPtr pScreen, DPMSSetProcPtr set, int flags); #ifdef DPMSExtension -extern _X_EXPORT int DPMSGet(int *level); extern _X_EXPORT int DPMSSet(ClientPtr client, int level); extern _X_EXPORT Bool DPMSSupported(void); #endif diff --git a/hw/xfree86/common/xf86DPMS.c b/hw/xfree86/common/xf86DPMS.c index 03a6d0cbf..1687f2cb5 100644 --- a/hw/xfree86/common/xf86DPMS.c +++ b/hw/xfree86/common/xf86DPMS.c @@ -198,25 +198,4 @@ DPMSSupported(void) return FALSE; } - -/* - * DPMSGet -- - * Device dependent DPMS mode getting hook. This returns the current - * DPMS mode, or -1 if DPMS is not supported. - * - * This should hook in to the appropriate driver-level function, which - * will be added to the ScrnInfoRec. - * - * NOTES: - * 1. the calling interface should be changed to specify which - * screen to check. - * 2. It isn't clear that this function is ever used or what it should - * return. - */ -int -DPMSGet(int *level) -{ - return DPMSPowerLevel; -} - #endif /* DPMSExtension */ From c1cf36ee29e41901ecd382f0258110ebb4a0124e Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 3 Apr 2009 17:51:55 -0400 Subject: [PATCH 39/52] DPMS: Simplify command line parsing --- dix/globals.c | 3 +-- hw/xfree86/common/xf86DPMS.c | 6 ++---- include/globals.h | 1 - os/utils.c | 3 +-- 4 files changed, 4 insertions(+), 9 deletions(-) diff --git a/dix/globals.c b/dix/globals.c index aa15de962..0df3fbe50 100644 --- a/dix/globals.c +++ b/dix/globals.c @@ -100,8 +100,7 @@ CARD32 defaultDPMSSuspendTime = DEFAULT_SCREEN_SAVER_TIME; CARD32 defaultDPMSOffTime = DEFAULT_SCREEN_SAVER_TIME; CARD16 DPMSPowerLevel = 0; Bool defaultDPMSEnabled = TRUE; -Bool DPMSEnabledSwitch = FALSE; /* these denote the DPMS command */ -Bool DPMSDisabledSwitch = FALSE; /* line switch states */ +Bool DPMSDisabledSwitch = FALSE; Bool DPMSCapableFlag = FALSE; CARD32 DPMSStandbyTime; CARD32 DPMSSuspendTime; diff --git a/hw/xfree86/common/xf86DPMS.c b/hw/xfree86/common/xf86DPMS.c index 1687f2cb5..46d105ce5 100644 --- a/hw/xfree86/common/xf86DPMS.c +++ b/hw/xfree86/common/xf86DPMS.c @@ -64,8 +64,6 @@ xf86DPMSInit(ScreenPtr pScreen, DPMSSetProcPtr set, int flags) DPMSKey = &DPMSKeyIndex; - if (DPMSDisabledSwitch) - DPMSEnabled = FALSE; if (!dixSetPrivate(&pScreen->devPrivates, DPMSKey, xcalloc(sizeof(DPMSRec), 1))) return FALSE; @@ -74,9 +72,9 @@ xf86DPMSInit(ScreenPtr pScreen, DPMSSetProcPtr set, int flags) pScrn->DPMSSet = set; pDPMS->Flags = flags; DPMSOpt = xf86FindOption(pScrn->options, "dpms"); - if (DPMSEnabledSwitch || DPMSDisabledSwitch) { + if (DPMSDisabledSwitch) { enabled_from = X_CMDLINE; - DPMSEnabled = !DPMSDisabledSwitch && DPMSEnabledSwitch; + DPMSEnabled = FALSE; } else if (DPMSOpt) { enabled_from = X_CONFIG; diff --git a/include/globals.h b/include/globals.h index 90cfa7148..79c959a57 100644 --- a/include/globals.h +++ b/include/globals.h @@ -37,7 +37,6 @@ extern CARD32 DPMSOffTime; extern CARD16 DPMSPowerLevel; extern Bool defaultDPMSEnabled; extern Bool DPMSEnabled; -extern Bool DPMSEnabledSwitch; extern Bool DPMSDisabledSwitch; extern Bool DPMSCapableFlag; #endif diff --git a/os/utils.c b/os/utils.c index 56095b128..d05c437dd 100644 --- a/os/utils.c +++ b/os/utils.c @@ -487,7 +487,6 @@ void UseMsg(void) ErrorF("-core generate core dump on fatal error\n"); ErrorF("-dpi int screen resolution in dots per inch\n"); #ifdef DPMSExtension - ErrorF("dpms enables VESA DPMS monitor control\n"); ErrorF("-dpms disables VESA DPMS monitor control\n"); #endif ErrorF("-deferglyphs [none|all|16] defer loading of [no|all|16-bit] glyphs\n"); @@ -673,7 +672,7 @@ ProcessCommandLine(int argc, char *argv[]) } #ifdef DPMSExtension else if ( strcmp( argv[i], "dpms") == 0) - DPMSEnabledSwitch = TRUE; + /* ignored for compatibility */ ; else if ( strcmp( argv[i], "-dpms") == 0) DPMSDisabledSwitch = TRUE; #endif From 6574ab092fb80b7731e06ede653b6af92fa7684e Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 3 Apr 2009 18:03:43 -0400 Subject: [PATCH 40/52] DPMS: Remove the defaultDPMS* variables --- dix/globals.c | 4 ---- dix/main.c | 8 ++++---- hw/xfree86/common/xf86Config.c | 6 +++--- hw/xfree86/common/xf86DPMS.c | 2 +- include/globals.h | 4 ---- 5 files changed, 8 insertions(+), 16 deletions(-) diff --git a/dix/globals.c b/dix/globals.c index 0df3fbe50..c24a94fbe 100644 --- a/dix/globals.c +++ b/dix/globals.c @@ -95,11 +95,7 @@ int ScreenSaverBlanking; int ScreenSaverAllowExposures; #ifdef DPMSExtension -CARD32 defaultDPMSStandbyTime = DEFAULT_SCREEN_SAVER_TIME; -CARD32 defaultDPMSSuspendTime = DEFAULT_SCREEN_SAVER_TIME; -CARD32 defaultDPMSOffTime = DEFAULT_SCREEN_SAVER_TIME; CARD16 DPMSPowerLevel = 0; -Bool defaultDPMSEnabled = TRUE; Bool DPMSDisabledSwitch = FALSE; Bool DPMSCapableFlag = FALSE; CARD32 DPMSStandbyTime; diff --git a/dix/main.c b/dix/main.c index 6a45332c3..e10f7e1a4 100644 --- a/dix/main.c +++ b/dix/main.c @@ -269,10 +269,10 @@ int main(int argc, char *argv[], char *envp[]) ScreenSaverBlanking = defaultScreenSaverBlanking; ScreenSaverAllowExposures = defaultScreenSaverAllowExposures; #ifdef DPMSExtension - DPMSStandbyTime = defaultDPMSStandbyTime; - DPMSSuspendTime = defaultDPMSSuspendTime; - DPMSOffTime = defaultDPMSOffTime; - DPMSEnabled = defaultDPMSEnabled; + DPMSStandbyTime = DEFAULT_SCREEN_SAVER_TIME; + DPMSSuspendTime = DEFAULT_SCREEN_SAVER_TIME; + DPMSOffTime = DEFAULT_SCREEN_SAVER_TIME; + DPMSEnabled = TRUE; DPMSPowerLevel = 0; #endif InitBlockAndWakeupHandlers(); diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c index b9ab11a32..9a25c7bca 100644 --- a/hw/xfree86/common/xf86Config.c +++ b/hw/xfree86/common/xf86Config.c @@ -986,21 +986,21 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts) i = -1; xf86GetOptValInteger(FlagOptions, FLAG_DPMS_STANDBYTIME, &i); if ((i >= 0) && (i < MAX_TIME_IN_MIN)) - DPMSStandbyTime = defaultDPMSStandbyTime = i * MILLI_PER_MIN; + DPMSStandbyTime = i * MILLI_PER_MIN; else if (i != -1) xf86ConfigError("StandbyTime value %d outside legal range of 0 - %d minutes", i, MAX_TIME_IN_MIN); i = -1; xf86GetOptValInteger(FlagOptions, FLAG_DPMS_SUSPENDTIME, &i); if ((i >= 0) && (i < MAX_TIME_IN_MIN)) - DPMSSuspendTime = defaultDPMSSuspendTime = i * MILLI_PER_MIN; + DPMSSuspendTime = i * MILLI_PER_MIN; else if (i != -1) xf86ConfigError("SuspendTime value %d outside legal range of 0 - %d minutes", i, MAX_TIME_IN_MIN); i = -1; xf86GetOptValInteger(FlagOptions, FLAG_DPMS_OFFTIME, &i); if ((i >= 0) && (i < MAX_TIME_IN_MIN)) - DPMSOffTime = defaultDPMSOffTime = i * MILLI_PER_MIN; + DPMSOffTime = i * MILLI_PER_MIN; else if (i != -1) xf86ConfigError("OffTime value %d outside legal range of 0 - %d minutes", i, MAX_TIME_IN_MIN); diff --git a/hw/xfree86/common/xf86DPMS.c b/hw/xfree86/common/xf86DPMS.c index 46d105ce5..0f40e1b0b 100644 --- a/hw/xfree86/common/xf86DPMS.c +++ b/hw/xfree86/common/xf86DPMS.c @@ -83,7 +83,7 @@ xf86DPMSInit(ScreenPtr pScreen, DPMSSetProcPtr set, int flags) } else { enabled_from = X_DEFAULT; - DPMSEnabled = defaultDPMSEnabled; + DPMSEnabled = TRUE; } if (DPMSEnabled) xf86DrvMsg(pScreen->myNum, enabled_from, "DPMS enabled\n"); diff --git a/include/globals.h b/include/globals.h index 79c959a57..a7ef48a54 100644 --- a/include/globals.h +++ b/include/globals.h @@ -28,14 +28,10 @@ extern _X_EXPORT DDXPointRec dixScreenOrigins[MAXSCREENS]; extern _X_EXPORT char *ConnectionInfo; #ifdef DPMSExtension -extern CARD32 defaultDPMSStandbyTime; -extern CARD32 defaultDPMSSuspendTime; -extern CARD32 defaultDPMSOffTime; extern CARD32 DPMSStandbyTime; extern CARD32 DPMSSuspendTime; extern CARD32 DPMSOffTime; extern CARD16 DPMSPowerLevel; -extern Bool defaultDPMSEnabled; extern Bool DPMSEnabled; extern Bool DPMSDisabledSwitch; extern Bool DPMSCapableFlag; From cbb165ab88cb0810268001e84d87671440baf837 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 3 Apr 2009 18:34:45 -0400 Subject: [PATCH 41/52] os: Remove the useless -x option --- os/utils.c | 9 --------- 1 file changed, 9 deletions(-) diff --git a/os/utils.c b/os/utils.c index d05c437dd..66957d56f 100644 --- a/os/utils.c +++ b/os/utils.c @@ -534,7 +534,6 @@ void UseMsg(void) ErrorF("-v screen-saver without video blanking\n"); ErrorF("-wm WhenMapped default backing-store\n"); ErrorF("-wr create root window with white background\n"); - ErrorF("-x string loads named extension at init time \n"); ErrorF("-maxbigreqsize set maximal bigrequest size \n"); #ifdef PANORAMIX ErrorF("+xinerama Enable XINERAMA extension\n"); @@ -883,14 +882,6 @@ ProcessCommandLine(int argc, char *argv[]) PanoramiXExtensionDisabledHack = TRUE; } #endif - else if ( strcmp( argv[i], "-x") == 0) - { - if(++i >= argc) - UseMsg(); - /* For U**x, which doesn't support dynamic loading, there's nothing - * to do when we see a -x. Either the extension is linked in or - * it isn't */ - } else if ( strcmp( argv[i], "-I") == 0) { /* ignore all remaining arguments */ From 472811dc4ba741ab09db184216878700f4adf745 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 3 Apr 2009 22:27:51 -0400 Subject: [PATCH 42/52] DPMS: Re-export the various DPMS variables. The drivers might not need them but extmod does. Should move it to builtin though. --- Xext/Makefile.am | 2 +- include/globals.h | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Xext/Makefile.am b/Xext/Makefile.am index ac45f955a..21c858626 100644 --- a/Xext/Makefile.am +++ b/Xext/Makefile.am @@ -113,7 +113,7 @@ endif # DPMS extension DPMS_SRCS = dpms.c dpmsproc.h if DPMSExtension -MODULE_SRCS += $(DPMS_SRCS) +BUILTIN_SRCS += $(DPMS_SRCS) endif # Now take all of the above, mix well, bake for 10 minutes and get libXext*.la diff --git a/include/globals.h b/include/globals.h index a7ef48a54..52c19a490 100644 --- a/include/globals.h +++ b/include/globals.h @@ -28,13 +28,13 @@ extern _X_EXPORT DDXPointRec dixScreenOrigins[MAXSCREENS]; extern _X_EXPORT char *ConnectionInfo; #ifdef DPMSExtension -extern CARD32 DPMSStandbyTime; -extern CARD32 DPMSSuspendTime; -extern CARD32 DPMSOffTime; -extern CARD16 DPMSPowerLevel; -extern Bool DPMSEnabled; -extern Bool DPMSDisabledSwitch; -extern Bool DPMSCapableFlag; +extern _X_EXPORT CARD32 DPMSStandbyTime; +extern _X_EXPORT CARD32 DPMSSuspendTime; +extern _X_EXPORT CARD32 DPMSOffTime; +extern _X_EXPORT CARD16 DPMSPowerLevel; +extern _X_EXPORT Bool DPMSEnabled; +extern _X_EXPORT Bool DPMSDisabledSwitch; +extern _X_EXPORT Bool DPMSCapableFlag; #endif #ifdef PANORAMIX From e25d55ad546905c4921f0a26385bdb9f22038429 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Fri, 3 Apr 2009 22:38:00 -0400 Subject: [PATCH 43/52] Revert accidental Makefile change from previous commit --- Xext/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Xext/Makefile.am b/Xext/Makefile.am index 21c858626..ac45f955a 100644 --- a/Xext/Makefile.am +++ b/Xext/Makefile.am @@ -113,7 +113,7 @@ endif # DPMS extension DPMS_SRCS = dpms.c dpmsproc.h if DPMSExtension -BUILTIN_SRCS += $(DPMS_SRCS) +MODULE_SRCS += $(DPMS_SRCS) endif # Now take all of the above, mix well, bake for 10 minutes and get libXext*.la From e1338d27141125af61634597c5dea880692c4017 Mon Sep 17 00:00:00 2001 From: Julien Cristau Date: Sat, 4 Apr 2009 23:43:28 +0200 Subject: [PATCH 44/52] xfree86: Remove unused DEFAULT_UNRESOLVED and DEFAULT_BEST_REFRESH macros --- hw/xfree86/common/xf86Priv.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h index 6d53277cb..bc984f2f7 100644 --- a/hw/xfree86/common/xf86Priv.h +++ b/hw/xfree86/common/xf86Priv.h @@ -108,9 +108,6 @@ extern _X_EXPORT RootWinPropPtr *xf86RegisteredPropertiesTable; #define DEFAULT_DPI 96 #endif -#define DEFAULT_UNRESOLVED TRUE -#define DEFAULT_BEST_REFRESH FALSE - /* Function Prototypes */ #ifndef _NO_XF86_PROTOTYPES From 67621f3b39c387b3f7bfc65781051aea51c0b83f Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Sun, 5 Apr 2009 00:06:57 -0700 Subject: [PATCH 45/52] XQuartz: Send a MotionNotify event for the mouse cursor when activating X11.app Otherwise if X11.app was activated with a mouse click, the location of the even is the last location of the cursor before X11 was deactivated (cherry picked from commit c7457d7b31ddd2ddfd04dd6294bed4532664e1ab) --- hw/xquartz/X11Application.m | 51 ++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index bd4b27539..937517c6e 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -80,6 +80,11 @@ static KeyboardLayoutRef last_key_layout; extern int darwinFakeButtons; +/* Store the mouse location while in the background, and update X11's pointer + * location when we become the foreground application + */ +static NSPoint bgMouseLocation; + X11Application *X11App; CFStringRef app_prefs_domain_cfstr = NULL; @@ -188,6 +193,7 @@ static void message_kit_thread (SEL selector, NSObject *arg) { size_t i; DEBUG_LOG("state=%d, _x_active=%d, \n", state, _x_active) if (state) { + DarwinSendPointerEvents(darwinPointer, MotionNotify, 0, bgMouseLocation.x, bgMouseLocation.y, 0.0, 0.0, 0.0); DarwinSendDDXEvent(kXquartzActivate, 0); if (!_x_active) { @@ -954,10 +960,10 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe - (void) sendX11NSEvent:(NSEvent *)e { NSRect screen; - NSPoint location; + NSPoint location, tilt; NSWindow *window; int ev_button, ev_type; - float pointer_x, pointer_y, pressure, tilt_x, tilt_y; + float pressure; DeviceIntPtr pDev; int modifierFlags; @@ -984,10 +990,8 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe /* Setup our valuators. These will range from 0 to 1 */ pressure = 0; - tilt_x = 0; - tilt_y = 0; - pointer_x = location.x; - pointer_y = location.y; + tilt.x = 0.0; + tilt.y = 0.0; modifierFlags = [e modifierFlags]; @@ -1055,14 +1059,13 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe pDev = darwinTabletCurrent; */ - DarwinSendProximityEvents([e isEnteringProximity]?ProximityIn:ProximityOut, - pointer_x, pointer_y); + DarwinSendProximityEvents([e isEnteringProximity] ? ProximityIn : ProximityOut, + location.x, location.y); } if ([e type] == NSTabletPoint || [e subtype] == NSTabletPointEventSubtype) { pressure = [e pressure]; - tilt_x = [e tilt].x; - tilt_y = [e tilt].y; + tilt = [e tilt]; pDev = darwinTabletCurrent; } @@ -1076,23 +1079,29 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe //#if defined(XPLUGIN_VERSION) && XPLUGIN_VERSION > 0 /* Older libXplugin (Tiger/"Stock" Leopard) aren't thread safe, so we can't call xp_find_window from the Appkit thread */ xp_window_id wid; + xp_error e; /* Sigh. Need to check that we're really over one of * our windows. (We need to receive pointer events while * not in the foreground, but we don't want to receive them * when another window is over us or we might show a tooltip) */ - + wid = 0; - - if (xp_find_window(pointer_x, pointer_y, 0, &wid) == XP_Success && - wid == 0) + e = xp_find_window(location.x, location.y, 0, &wid); + + if (e == XP_Success && wid == 0) { + bgMouseLocation = location; + return; + } +#else + bgMouseLocation = location; + return; #endif - return; } - DarwinSendPointerEvents(pDev, ev_type, ev_button, pointer_x, pointer_y, - pressure, tilt_x, tilt_y); + DarwinSendPointerEvents(pDev, ev_type, ev_button, location.x, location.y, + pressure, tilt.x, tilt.y); break; @@ -1111,13 +1120,13 @@ static inline int ensure_flag(int flags, int device_independent, int device_depe break; } - DarwinSendProximityEvents([e isEnteringProximity]?ProximityIn:ProximityOut, - pointer_x, pointer_y); + DarwinSendProximityEvents([e isEnteringProximity] ? ProximityIn : ProximityOut, + location.x, location.y); break; case NSScrollWheel: - DarwinSendScrollEvents([e deltaX], [e deltaY], pointer_x, pointer_y, - pressure, tilt_x, tilt_y); + DarwinSendScrollEvents([e deltaX], [e deltaY], location.x, location.y, + pressure, tilt.x, tilt.y); break; case NSKeyDown: case NSKeyUp: From 2c03a63ff6855272d587b4972a67f64115a1ce4c Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Sun, 5 Apr 2009 03:20:40 -0700 Subject: [PATCH 46/52] XQuartz: Use updated Xplugin API to send overide-redirect windows to the current space when they're ordered in This fixes the annoying "using a menu moves me to another space" bug (cherry picked from commit 9e6dab89e08a26d764ba1aeaeb804c3d25c667da) --- hw/xquartz/xpr/xprFrame.c | 41 +++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/hw/xquartz/xpr/xprFrame.c b/hw/xquartz/xpr/xprFrame.c index 9a143ade0..a7fc3a9e7 100644 --- a/hw/xquartz/xpr/xprFrame.c +++ b/hw/xquartz/xpr/xprFrame.c @@ -120,7 +120,7 @@ xprSetNativeProperty(RootlessWindowPtr pFrame) /* * Create and display a new frame. */ -Bool +static Bool xprCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen, int newX, int newY, RegionPtr pShape) { @@ -187,7 +187,7 @@ xprCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen, /* * Destroy a frame. */ -void +static void xprDestroyFrame(RootlessFrameID wid) { TA_SERVER(); @@ -203,7 +203,7 @@ xprDestroyFrame(RootlessFrameID wid) /* * Move a frame on screen. */ -void +static void xprMoveFrame(RootlessFrameID wid, ScreenPtr pScreen, int newX, int newY) { TA_SERVER(); @@ -220,7 +220,7 @@ xprMoveFrame(RootlessFrameID wid, ScreenPtr pScreen, int newX, int newY) /* * Resize and move a frame. */ -void +static void xprResizeFrame(RootlessFrameID wid, ScreenPtr pScreen, int newX, int newY, unsigned int newW, unsigned int newH, unsigned int gravity) @@ -245,7 +245,7 @@ xprResizeFrame(RootlessFrameID wid, ScreenPtr pScreen, /* * Change frame stacking. */ -void +static void xprRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid) { xp_window_changes wc; @@ -257,12 +257,22 @@ xprRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid) if (nextWid == NULL) { +#if defined(XPLUGIN_VERSION) && XPLUGIN_VERSION >= 3 + WindowPtr pWin = xprGetXWindow((xp_window_id)wid); + wc.stack_mode = (pWin && pWin->overrideRedirect) ? XP_MAPPED_ABOVE_CURRENT_SPACE : XP_MAPPED_ABOVE; +#else wc.stack_mode = XP_MAPPED_ABOVE; +#endif wc.sibling = 0; } else { +#if defined(XPLUGIN_VERSION) && XPLUGIN_VERSION >= 3 + WindowPtr pWin = xprGetXWindow((xp_window_id)wid); + wc.stack_mode = (pWin && pWin->overrideRedirect) ? XP_MAPPED_BELOW_CURRENT_SPACE : XP_MAPPED_BELOW; +#else wc.stack_mode = XP_MAPPED_BELOW; +#endif wc.sibling = x_cvt_vptr_to_uint(nextWid); } @@ -273,7 +283,7 @@ xprRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid) /* * Change the frame's shape. */ -void +static void xprReshapeFrame(RootlessFrameID wid, RegionPtr pShape) { xp_window_changes wc; @@ -300,7 +310,7 @@ xprReshapeFrame(RootlessFrameID wid, RegionPtr pShape) /* * Unmap a frame. */ -void +static void xprUnmapFrame(RootlessFrameID wid) { xp_window_changes wc; @@ -318,7 +328,7 @@ xprUnmapFrame(RootlessFrameID wid) * Start drawing to a frame. * Prepare for direct access to its backing buffer. */ -void +static void xprStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow) { void *data[2]; @@ -339,7 +349,7 @@ xprStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow) /* * Stop drawing to a frame. */ -void +static void xprStopDrawing(RootlessFrameID wid, Bool flush) { TA_SERVER(); @@ -351,7 +361,7 @@ xprStopDrawing(RootlessFrameID wid, Bool flush) /* * Flush drawing updates to the screen. */ -void +static void xprUpdateRegion(RootlessFrameID wid, RegionPtr pDamage) { TA_SERVER(); @@ -363,7 +373,7 @@ xprUpdateRegion(RootlessFrameID wid, RegionPtr pDamage) /* * Mark damaged rectangles as requiring redisplay to screen. */ -void +static void xprDamageRects(RootlessFrameID wid, int nrects, const BoxRec *rects, int shift_x, int shift_y) { @@ -377,7 +387,7 @@ xprDamageRects(RootlessFrameID wid, int nrects, const BoxRec *rects, * Called after the window associated with a frame has been switched * to a new top-level parent. */ -void +static void xprSwitchWindow(RootlessWindowPtr pFrame, WindowPtr oldWin) { DeleteProperty(serverClient, oldWin, xa_native_window_id()); @@ -391,7 +401,7 @@ xprSwitchWindow(RootlessWindowPtr pFrame, WindowPtr oldWin) /* * Called to check if the frame should be reordered when it is restacked. */ -Bool xprDoReorderWindow(RootlessWindowPtr pFrame) +static Bool xprDoReorderWindow(RootlessWindowPtr pFrame) { WindowPtr pWin = pFrame->win; @@ -405,7 +415,7 @@ Bool xprDoReorderWindow(RootlessWindowPtr pFrame) * Copy area in frame to another part of frame. * Used to accelerate scrolling. */ -void +static void xprCopyWindow(RootlessFrameID wid, int dstNrects, const BoxRec *dstRects, int dx, int dy) { @@ -473,6 +483,7 @@ xprGetXWindow(xp_window_id wid) return winRec != NULL ? winRec->win : NULL; } +#ifdef UNUSED_CODE /* * Given the id of a physical window, try to find the top-level (or root) * X window that it represents. @@ -503,7 +514,7 @@ xprGetXWindowFromAppKit(int windowNumber) return winRec != NULL ? winRec->win : NULL; } - +#endif /* * The windowNumber is an AppKit window number. Returns TRUE if xpr is From aa6fbc2a3679896181610aee7ce2844d4322a5ce Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 6 Apr 2009 10:58:47 -0400 Subject: [PATCH 47/52] Remove some OS/2 leftovers. --- hw/xfree86/common/modeline2c.awk | 3 --- os/connection.c | 9 --------- 2 files changed, 12 deletions(-) diff --git a/hw/xfree86/common/modeline2c.awk b/hw/xfree86/common/modeline2c.awk index 71a956e05..038e7e935 100644 --- a/hw/xfree86/common/modeline2c.awk +++ b/hw/xfree86/common/modeline2c.awk @@ -56,9 +56,6 @@ BEGIN { print "#include " print "#endif" print "" - print "#ifdef __UNIXOS2__" - print "#define I_NEED_OS2_H" - print "#endif" print "#include \"xf86.h\"" print "#include \"xf86Config.h\"" print "#include \"xf86Priv.h\"" diff --git a/os/connection.c b/os/connection.c index a6270b38a..0c72b67eb 100644 --- a/os/connection.c +++ b/os/connection.c @@ -345,15 +345,6 @@ InitParentProcess(void) RunFromSmartParent = TRUE; OsSignal(SIGUSR1, handler); ParentProcess = getppid (); -#ifdef __UNIXOS2__ - /* - * fg030505: under OS/2, xinit is not the parent process but - * the "grant parent" process of the server because execvpe() - * presents us an additional process number; - * GetPPID(pid) is part of libemxfix - */ - ParentProcess = GetPPID (ParentProcess); -#endif /* __UNIXOS2__ */ #endif } From 843166b033dc0544b9f3cf3c91fc3ae3650bda14 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 6 Apr 2009 11:05:17 -0400 Subject: [PATCH 48/52] os: signal handlers return void. --- include/os.h | 13 +++---------- os/utils.c | 6 ++---- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/include/os.h b/include/os.h index 7da31a5ad..bda7125a0 100644 --- a/include/os.h +++ b/include/os.h @@ -83,13 +83,6 @@ typedef struct _NewClientRec *NewClientPtr; #include #include -/* have to put $(SIGNAL_DEFINES) in DEFINES in Imakefile to get this right */ -#ifdef SIGNALRETURNSINT -#define SIGVAL int -#else -#define SIGVAL void -#endif - #ifdef DDXOSVERRORF extern _X_EXPORT void (*OsVendorVErrorFProc)(const char *, va_list args); #endif @@ -202,9 +195,9 @@ extern _X_EXPORT void TimerFree(OsTimerPtr /* pTimer */); extern _X_EXPORT void SetScreenSaverTimer(void); extern _X_EXPORT void FreeScreenSaverTimer(void); -extern _X_EXPORT SIGVAL AutoResetServer(int /*sig*/); +extern _X_EXPORT void AutoResetServer(int /*sig*/); -extern _X_EXPORT SIGVAL GiveUp(int /*sig*/); +extern _X_EXPORT void GiveUp(int /*sig*/); extern _X_EXPORT void UseMsg(void); @@ -234,7 +227,7 @@ extern _X_EXPORT char *Xvprintf(const char *fmt, va_list va); extern _X_EXPORT char *XNFprintf(const char *fmt, ...); extern _X_EXPORT char *XNFvprintf(const char *fmt, va_list va); -typedef SIGVAL (*OsSigHandlerPtr)(int /* sig */); +typedef void (*OsSigHandlerPtr)(int /* sig */); extern _X_EXPORT OsSigHandlerPtr OsSignal(int /* sig */, OsSigHandlerPtr /* handler */); diff --git a/os/utils.c b/os/utils.c index 66957d56f..78a50b254 100644 --- a/os/utils.c +++ b/os/utils.c @@ -400,8 +400,7 @@ UnlockServer(void) /* Force connections to close on SIGHUP from init */ -/*ARGSUSED*/ -SIGVAL +void AutoResetServer (int sig) { int olderrno = errno; @@ -413,8 +412,7 @@ AutoResetServer (int sig) /* Force connections to close and then exit on SIGTERM, SIGINT */ -/*ARGSUSED*/ -SIGVAL +void GiveUp(int sig) { int olderrno = errno; From 5f769b73441cf29c05a05c728ab81bdde1fc00b6 Mon Sep 17 00:00:00 2001 From: David Jander Date: Mon, 6 Apr 2009 13:01:08 -0400 Subject: [PATCH 49/52] kdrive: Fix segfault in tslib support --- hw/kdrive/linux/tslib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/kdrive/linux/tslib.c b/hw/kdrive/linux/tslib.c index 19c8e84b5..59011b0e3 100644 --- a/hw/kdrive/linux/tslib.c +++ b/hw/kdrive/linux/tslib.c @@ -114,7 +114,7 @@ TslibEnable (KdPointerInfo *pi) private->raw_event_hook = NULL; private->raw_event_closure = NULL; if (!pi->path) { - pi->path = "/dev/input/touchscreen0"; + pi->path = strdup("/dev/input/touchscreen0"); ErrorF("[tslib/TslibEnable] no device path given, trying %s\n", pi->path); } private->tsDev = ts_open(pi->path, 0); From 485946120a6522db9298111752de9be3d675e0b3 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 6 Apr 2009 17:51:35 -0400 Subject: [PATCH 50/52] config: s/xf86configStrdup/strdup/ --- hw/xfree86/parser/Device.c | 11 ----------- hw/xfree86/parser/Flags.c | 9 ++++----- hw/xfree86/parser/Pointer.c | 34 +++++++++++++++++----------------- hw/xfree86/parser/Screen.c | 2 +- hw/xfree86/parser/scan.c | 2 +- hw/xfree86/parser/xf86Optrec.h | 2 +- 6 files changed, 24 insertions(+), 36 deletions(-) diff --git a/hw/xfree86/parser/Device.c b/hw/xfree86/parser/Device.c index 216789fc1..d1621c92c 100644 --- a/hw/xfree86/parser/Device.c +++ b/hw/xfree86/parser/Device.c @@ -369,14 +369,3 @@ xf86findDevice (const char *ident, XF86ConfDevicePtr p) } return (NULL); } - -char * -xf86configStrdup (const char *s) -{ - char *tmp; - if (!s) return NULL; - tmp = xf86confmalloc (sizeof (char) * (strlen (s) + 1)); - if (tmp) - strcpy (tmp, s); - return (tmp); -} diff --git a/hw/xfree86/parser/Flags.c b/hw/xfree86/parser/Flags.c index 8f44ea5ec..0a9724c60 100644 --- a/hw/xfree86/parser/Flags.c +++ b/hw/xfree86/parser/Flags.c @@ -1,5 +1,4 @@ /* - * * Copyright (c) 1997 Metro Link Incorporated * * Permission is hereby granted, free of charge, to any person obtaining a @@ -134,7 +133,7 @@ xf86parseFlagsSection (void) { char *valstr = NULL; /* can't use strdup because it calls malloc */ - tmp = xf86configStrdup (ServerFlagsTab[i].name); + tmp = strdup (ServerFlagsTab[i].name); if (hasvalue) { tokentype = xf86getSubToken(&(ptr->flg_comment)); @@ -239,11 +238,11 @@ xf86optionListDup (XF86OptionPtr opt) while (opt) { - newopt = xf86addNewOption(newopt, xf86configStrdup(opt->opt_name), - xf86configStrdup(opt->opt_val)); + newopt = xf86addNewOption(newopt, strdup(opt->opt_name), + strdup(opt->opt_val)); newopt->opt_used = opt->opt_used; if (opt->opt_comment) - newopt->opt_comment = xf86configStrdup(opt->opt_comment); + newopt->opt_comment = strdup(opt->opt_comment); opt = opt->list.next; } return newopt; diff --git a/hw/xfree86/parser/Pointer.c b/hw/xfree86/parser/Pointer.c index eeb0834bf..30ad8df84 100644 --- a/hw/xfree86/parser/Pointer.c +++ b/hw/xfree86/parser/Pointer.c @@ -115,19 +115,19 @@ xf86parsePointerSection (void) if (xf86getSubToken (&(ptr->inp_comment)) != STRING) Error (QUOTE_MSG, "Protocol"); ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("Protocol"), + strdup("Protocol"), val.str); break; case PDEVICE: if (xf86getSubToken (&(ptr->inp_comment)) != STRING) Error (QUOTE_MSG, "Device"); ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("Device"), + strdup("Device"), val.str); break; case EMULATE3: ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("Emulate3Buttons"), + strdup("Emulate3Buttons"), NULL); break; case EM3TIMEOUT: @@ -135,12 +135,12 @@ xf86parsePointerSection (void) Error (POSITIVE_INT_MSG, "Emulate3Timeout"); s = xf86uLongToString(val.num); ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("Emulate3Timeout"), + strdup("Emulate3Timeout"), s); break; case CHORDMIDDLE: ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("ChordMiddle"), + strdup("ChordMiddle"), NULL); break; case PBUTTONS: @@ -148,36 +148,36 @@ xf86parsePointerSection (void) Error (POSITIVE_INT_MSG, "Buttons"); s = xf86uLongToString(val.num); ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("Buttons"), s); + strdup("Buttons"), s); break; case BAUDRATE: if (xf86getSubToken (&(ptr->inp_comment)) != NUMBER || val.num < 0) Error (POSITIVE_INT_MSG, "BaudRate"); s = xf86uLongToString(val.num); ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("BaudRate"), s); + strdup("BaudRate"), s); break; case SAMPLERATE: if (xf86getSubToken (&(ptr->inp_comment)) != NUMBER || val.num < 0) Error (POSITIVE_INT_MSG, "SampleRate"); s = xf86uLongToString(val.num); ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("SampleRate"), s); + strdup("SampleRate"), s); break; case PRESOLUTION: if (xf86getSubToken (&(ptr->inp_comment)) != NUMBER || val.num < 0) Error (POSITIVE_INT_MSG, "Resolution"); s = xf86uLongToString(val.num); ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("Resolution"), s); + strdup("Resolution"), s); break; case CLEARDTR: ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("ClearDTR"), NULL); + strdup("ClearDTR"), NULL); break; case CLEARRTS: ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("ClearRTS"), NULL); + strdup("ClearRTS"), NULL); break; case ZAXISMAPPING: switch (xf86getToken(ZMapTab)) { @@ -197,17 +197,17 @@ xf86parsePointerSection (void) xf86conffree(s2); break; case XAXIS: - s = xf86configStrdup("x"); + s = strdup("x"); break; case YAXIS: - s = xf86configStrdup("y"); + s = strdup("y"); break; default: Error (ZAXISMAPPING_MSG, NULL); break; } ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("ZAxisMapping"), + strdup("ZAxisMapping"), s); break; case ALWAYSCORE: @@ -221,10 +221,10 @@ xf86parsePointerSection (void) } } - ptr->inp_identifier = xf86configStrdup(CONF_IMPLICIT_POINTER); - ptr->inp_driver = xf86configStrdup("mouse"); + ptr->inp_identifier = strdup(CONF_IMPLICIT_POINTER); + ptr->inp_driver = strdup("mouse"); ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, - xf86configStrdup("CorePointer"), NULL); + strdup("CorePointer"), NULL); #ifdef DEBUG printf ("Pointer section parsed\n"); diff --git a/hw/xfree86/parser/Screen.c b/hw/xfree86/parser/Screen.c index dfc02bb72..1afbf8f97 100644 --- a/hw/xfree86/parser/Screen.c +++ b/hw/xfree86/parser/Screen.c @@ -544,7 +544,7 @@ xf86validateScreen (XF86ConfigPtr p) return (FALSE); } - adaptor->al_adaptor->va_fwdref = xf86configStrdup(screen->scrn_identifier); + adaptor->al_adaptor->va_fwdref = strdup(screen->scrn_identifier); adaptor = adaptor->list.next; } diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c index 7a9bb9305..ecca9e68d 100644 --- a/hw/xfree86/parser/scan.c +++ b/hw/xfree86/parser/scan.c @@ -877,7 +877,7 @@ void xf86setBuiltinConfig(const char *config[]) { builtinConfig = config; - configPath = xf86configStrdup(""); + configPath = strdup(""); configBuf = xf86confmalloc (CONFIG_BUF_LEN); configRBuf = xf86confmalloc (CONFIG_BUF_LEN); configBuf[0] = '\0'; /* sanity ... */ diff --git a/hw/xfree86/parser/xf86Optrec.h b/hw/xfree86/parser/xf86Optrec.h index 77b316a60..5ccf7285b 100644 --- a/hw/xfree86/parser/xf86Optrec.h +++ b/hw/xfree86/parser/xf86Optrec.h @@ -64,6 +64,7 @@ #ifndef _xf86Optrec_h_ #define _xf86Optrec_h_ #include +#include #include @@ -102,7 +103,6 @@ extern _X_EXPORT XF86OptionPtr xf86findOption(XF86OptionPtr list, const char *na extern _X_EXPORT char *xf86findOptionValue(XF86OptionPtr list, const char *name); extern _X_EXPORT XF86OptionPtr xf86optionListCreate(const char **options, int count, int used); extern _X_EXPORT XF86OptionPtr xf86optionListMerge(XF86OptionPtr head, XF86OptionPtr tail); -extern _X_EXPORT char *xf86configStrdup (const char *s); extern _X_EXPORT int xf86nameCompare (const char *s1, const char *s2); extern _X_EXPORT char *xf86uLongToString(unsigned long i); extern _X_EXPORT XF86OptionPtr xf86parseOption(XF86OptionPtr head); From 69e73e5ce0e3971eceed71216d2d7e7d9cd57cc2 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 6 Apr 2009 17:56:49 -0400 Subject: [PATCH 51/52] config: Remove useless xf86conf{{m,c,re}alloc},free} macros --- hw/xfree86/common/xf86Configure.c | 29 ++++++++--------- hw/xfree86/parser/Configint.h | 10 ++---- hw/xfree86/parser/DRI.c | 4 +-- hw/xfree86/parser/Device.c | 2 +- hw/xfree86/parser/Extensions.c | 2 +- hw/xfree86/parser/Files.c | 14 ++++---- hw/xfree86/parser/Flags.c | 26 +++++++-------- hw/xfree86/parser/Input.c | 2 +- hw/xfree86/parser/Layout.c | 36 ++++++++++----------- hw/xfree86/parser/Module.c | 12 +++---- hw/xfree86/parser/Monitor.c | 8 ++--- hw/xfree86/parser/Pointer.c | 8 ++--- hw/xfree86/parser/Screen.c | 14 ++++---- hw/xfree86/parser/Vendor.c | 4 +-- hw/xfree86/parser/Video.c | 4 +-- hw/xfree86/parser/read.c | 36 ++++++++++----------- hw/xfree86/parser/scan.c | 54 +++++++++++++++---------------- 17 files changed, 130 insertions(+), 135 deletions(-) diff --git a/hw/xfree86/common/xf86Configure.c b/hw/xfree86/common/xf86Configure.c index 1f1ff677c..307e0c42d 100644 --- a/hw/xfree86/common/xf86Configure.c +++ b/hw/xfree86/common/xf86Configure.c @@ -260,7 +260,7 @@ configureInputSection (void) #endif } - mouse = xf86confcalloc(1, sizeof(XF86ConfInputRec)); + mouse = calloc(1, sizeof(XF86ConfInputRec)); mouse->inp_identifier = "Mouse0"; mouse->inp_driver = "mouse"; mouse->inp_option_lst = @@ -285,18 +285,18 @@ configureScreenSection (int screennum) int depths[] = { 1, 4, 8, 15, 16, 24/*, 32*/ }; parsePrologue (XF86ConfScreenPtr, XF86ConfScreenRec) - ptr->scrn_identifier = xf86confmalloc(18); + ptr->scrn_identifier = malloc(18); sprintf(ptr->scrn_identifier, "Screen%d", screennum); - ptr->scrn_monitor_str = xf86confmalloc(19); + ptr->scrn_monitor_str = malloc(19); sprintf(ptr->scrn_monitor_str, "Monitor%d", screennum); - ptr->scrn_device_str = xf86confmalloc(16); + ptr->scrn_device_str = malloc(16); sprintf(ptr->scrn_device_str, "Card%d", screennum); for (i=0; idisp_depth = depths[i]; display->disp_black.red = display->disp_white.red = -1; display->disp_black.green = display->disp_white.green = -1; @@ -419,7 +419,7 @@ configureLayoutSection (void) { XF86ConfInputrefPtr iptr; - iptr = xf86confmalloc (sizeof (XF86ConfInputrefRec)); + iptr = malloc (sizeof (XF86ConfInputrefRec)); iptr->list.next = NULL; iptr->iref_option_lst = NULL; iptr->iref_inputdev_str = "Mouse0"; @@ -432,7 +432,7 @@ configureLayoutSection (void) { XF86ConfInputrefPtr iptr; - iptr = xf86confmalloc (sizeof (XF86ConfInputrefRec)); + iptr = malloc (sizeof (XF86ConfInputrefRec)); iptr->list.next = NULL; iptr->iref_option_lst = NULL; iptr->iref_inputdev_str = "Keyboard0"; @@ -445,7 +445,7 @@ configureLayoutSection (void) for (scrnum = 0; scrnum < nDevToConfig; scrnum++) { XF86ConfAdjacencyPtr aptr; - aptr = xf86confmalloc (sizeof (XF86ConfAdjacencyRec)); + aptr = malloc (sizeof (XF86ConfAdjacencyRec)); aptr->list.next = NULL; aptr->adj_x = 0; aptr->adj_y = 0; @@ -494,7 +494,7 @@ configureModuleSection (void) for (el = elist; *el; el++) { XF86LoadPtr module; - module = xf86confcalloc(1, sizeof(XF86LoadRec)); + module = calloc(1, sizeof(XF86LoadRec)); module->load_name = *el; ptr->mod_load_lst = (XF86LoadPtr)xf86addListItem( (glp)ptr->mod_load_lst, (glp)module); @@ -523,7 +523,7 @@ configureMonitorSection (int screennum) { parsePrologue (XF86ConfMonitorPtr, XF86ConfMonitorRec) - ptr->mon_identifier = xf86confmalloc(19); + ptr->mon_identifier = malloc(19); sprintf(ptr->mon_identifier, "Monitor%d", screennum); ptr->mon_vendor = strdup("Monitor Vendor"); ptr->mon_modelname = strdup("Monitor Model"); @@ -542,10 +542,10 @@ configureDDCMonitorSection (int screennum) parsePrologue (XF86ConfMonitorPtr, XF86ConfMonitorRec) - ptr->mon_identifier = xf86confmalloc(19); + ptr->mon_identifier = malloc(19); sprintf(ptr->mon_identifier, "Monitor%d", screennum); ptr->mon_vendor = strdup(ConfiguredMonitor->vendor.name); - ptr->mon_modelname = xf86confmalloc(12); + ptr->mon_modelname = malloc(12); sprintf(ptr->mon_modelname, "%x", ConfiguredMonitor->vendor.prod_id); /* features in centimetres, we want millimetres */ @@ -570,8 +570,7 @@ configureDDCMonitorSection (int screennum) len = 0; } if ((ptr->mon_comment = - xf86confrealloc(ptr->mon_comment, - len+strlen(displaySize_string)))) { + realloc(ptr->mon_comment, len+strlen(displaySize_string)))) { strcpy(ptr->mon_comment + len, displaySize_string); } } @@ -581,7 +580,7 @@ configureDDCMonitorSection (int screennum) for (i=0;i<4;i++) { switch (ConfiguredMonitor->det_mon[i].type) { case DS_NAME: - ptr->mon_modelname = xf86confrealloc(ptr->mon_modelname, + ptr->mon_modelname = realloc(ptr->mon_modelname, strlen((char*)(ConfiguredMonitor->det_mon[i].section.name)) + 1); strcpy(ptr->mon_modelname, diff --git a/hw/xfree86/parser/Configint.h b/hw/xfree86/parser/Configint.h index 815c1a376..cdc7be806 100644 --- a/hw/xfree86/parser/Configint.h +++ b/hw/xfree86/parser/Configint.h @@ -92,18 +92,14 @@ LexRec, *LexPtr; #include "configProcs.h" #include -#define xf86confmalloc malloc -#define xf86confrealloc realloc -#define xf86confcalloc calloc -#define xf86conffree free -#define TestFree(a) if (a) { xf86conffree (a); a = NULL; } +#define TestFree(a) if (a) { free (a); a = NULL; } #define parsePrologue(typeptr,typerec) typeptr ptr; \ -if( (ptr=(typeptr)xf86confcalloc(1,sizeof(typerec))) == NULL ) { return NULL; } +if( (ptr=calloc(1,sizeof(typerec))) == NULL ) { return NULL; } #define parsePrologueVoid(typeptr,typerec) int token; typeptr ptr; \ -if( (ptr=(typeptr)xf86confcalloc(1,sizeof(typerec))) == NULL ) { return; } +if( (ptr=calloc(1,sizeof(typerec))) == NULL ) { return; } #define HANDLE_RETURN(f,func)\ if ((ptr->f=func) == NULL)\ diff --git a/hw/xfree86/parser/DRI.c b/hw/xfree86/parser/DRI.c index 68a6db90b..12b8d1d1a 100644 --- a/hw/xfree86/parser/DRI.c +++ b/hw/xfree86/parser/DRI.c @@ -58,7 +58,7 @@ xf86freeBuffersList (XF86ConfBuffersPtr ptr) TestFree (ptr->buf_comment); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } @@ -183,5 +183,5 @@ xf86freeDRI (XF86ConfDRIPtr ptr) xf86freeBuffersList (ptr->dri_buffers_lst); TestFree (ptr->dri_comment); - xf86conffree (ptr); + free (ptr); } diff --git a/hw/xfree86/parser/Device.c b/hw/xfree86/parser/Device.c index d1621c92c..47ece07de 100644 --- a/hw/xfree86/parser/Device.c +++ b/hw/xfree86/parser/Device.c @@ -353,7 +353,7 @@ xf86freeDeviceList (XF86ConfDevicePtr ptr) prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } diff --git a/hw/xfree86/parser/Extensions.c b/hw/xfree86/parser/Extensions.c index b64f08111..4003b521a 100644 --- a/hw/xfree86/parser/Extensions.c +++ b/hw/xfree86/parser/Extensions.c @@ -107,5 +107,5 @@ xf86freeExtensions (XF86ConfExtensionsPtr ptr) xf86optionListFree (ptr->ext_option_lst); TestFree (ptr->extensions_comment); - xf86conffree (ptr); + free (ptr); } diff --git a/hw/xfree86/parser/Files.c b/hw/xfree86/parser/Files.c index 627ec7060..0c718354e 100644 --- a/hw/xfree86/parser/Files.c +++ b/hw/xfree86/parser/Files.c @@ -103,7 +103,7 @@ xf86parseFilesSection (void) str = val.str; if (ptr->file_fontpath == NULL) { - ptr->file_fontpath = xf86confmalloc (1); + ptr->file_fontpath = malloc (1); ptr->file_fontpath[0] = '\0'; i = strlen (str) + 1; } @@ -117,12 +117,12 @@ xf86parseFilesSection (void) } } ptr->file_fontpath = - xf86confrealloc (ptr->file_fontpath, i); + realloc (ptr->file_fontpath, i); if (j) strcat (ptr->file_fontpath, ","); strcat (ptr->file_fontpath, str); - xf86conffree (val.str); + free (val.str); break; case MODULEPATH: if (xf86getSubToken (&(ptr->file_comment)) != STRING) @@ -131,7 +131,7 @@ xf86parseFilesSection (void) str = val.str; if (ptr->file_modulepath == NULL) { - ptr->file_modulepath = xf86confmalloc (1); + ptr->file_modulepath = malloc (1); ptr->file_modulepath[0] = '\0'; k = strlen (str) + 1; } @@ -144,12 +144,12 @@ xf86parseFilesSection (void) l = TRUE; } } - ptr->file_modulepath = xf86confrealloc (ptr->file_modulepath, k); + ptr->file_modulepath = realloc (ptr->file_modulepath, k); if (l) strcat (ptr->file_modulepath, ","); strcat (ptr->file_modulepath, str); - xf86conffree (val.str); + free (val.str); break; case LOGFILEPATH: if (xf86getSubToken (&(ptr->file_comment)) != STRING) @@ -241,5 +241,5 @@ xf86freeFiles (XF86ConfFilesPtr p) TestFree (p->file_comment); TestFree (p->file_xkbdir); - xf86conffree (p); + free (p); } diff --git a/hw/xfree86/parser/Flags.c b/hw/xfree86/parser/Flags.c index 0a9724c60..b4e8d2583 100644 --- a/hw/xfree86/parser/Flags.c +++ b/hw/xfree86/parser/Flags.c @@ -144,7 +144,7 @@ xf86parseFlagsSection (void) } else { if (tokentype != NUMBER) Error (NUMBER_MSG, tmp); - valstr = xf86confmalloc(16); + valstr = malloc(16); if (valstr) sprintf(valstr, "%d", val.num); } @@ -201,11 +201,11 @@ addNewOption2 (XF86OptionPtr head, char *name, char *val, int used) /* Don't allow duplicates, free old strings */ if (head != NULL && (old = xf86findOption(head, name)) != NULL) { new = old; - xf86conffree(new->opt_name); - xf86conffree(new->opt_val); + free(new->opt_name); + free(new->opt_val); } else - new = xf86confcalloc (1, sizeof (XF86OptionRec)); + new = calloc (1, sizeof (XF86OptionRec)); new->opt_name = name; new->opt_val = val; new->opt_used = used; @@ -228,7 +228,7 @@ xf86freeFlags (XF86ConfFlagsPtr flags) return; xf86optionListFree (flags->flg_option_lst); TestFree(flags->flg_comment); - xf86conffree (flags); + free (flags); } XF86OptionPtr @@ -260,7 +260,7 @@ xf86optionListFree (XF86OptionPtr opt) TestFree (opt->opt_comment); prev = opt; opt = opt->list.next; - xf86conffree (prev); + free (prev); } } @@ -285,7 +285,7 @@ xf86newOption(char *name, char *value) { XF86OptionPtr opt; - opt = xf86confcalloc(1, sizeof (XF86OptionRec)); + opt = calloc(1, sizeof (XF86OptionRec)); if (!opt) return NULL; @@ -365,10 +365,10 @@ xf86optionListCreate( const char **options, int count, int used ) for (i = 0; i < count; i += 2) { /* can't use strdup because it calls malloc */ - t1 = xf86confmalloc (sizeof (char) * + t1 = malloc (sizeof (char) * (strlen (options[i]) + 1)); strcpy (t1, options[i]); - t2 = xf86confmalloc (sizeof (char) * + t2 = malloc (sizeof (char) * (strlen (options[i + 1]) + 1)); strcpy (t2, options[i + 1]); p = addNewOption2 (p, t1, t2, used); @@ -434,7 +434,7 @@ xf86uLongToString(unsigned long i) int l; l = (int)(ceil(log10((double)i) + 2.5)); - s = xf86confmalloc(l); + s = malloc(l); if (!s) return NULL; sprintf(s, "%lu", i); @@ -451,7 +451,7 @@ xf86parseOption(XF86OptionPtr head) if ((token = xf86getSubToken(&comment)) != STRING) { xf86parseError(BAD_OPTION_MSG, NULL); if (comment) - xf86conffree(comment); + free(comment); return (head); } @@ -478,10 +478,10 @@ xf86parseOption(XF86OptionPtr head) /* Don't allow duplicates */ if (head != NULL && (old = xf86findOption(head, name)) != NULL) { cnew = old; - xf86conffree(option->opt_name); + free(option->opt_name); TestFree(option->opt_val); TestFree(option->opt_comment); - xf86conffree(option); + free(option); } else cnew = option; diff --git a/hw/xfree86/parser/Input.c b/hw/xfree86/parser/Input.c index 3d9801968..4e3c04e53 100644 --- a/hw/xfree86/parser/Input.c +++ b/hw/xfree86/parser/Input.c @@ -163,7 +163,7 @@ xf86freeInputList (XF86ConfInputPtr ptr) prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } diff --git a/hw/xfree86/parser/Layout.c b/hw/xfree86/parser/Layout.c index 5d1348acb..d548cd210 100644 --- a/hw/xfree86/parser/Layout.c +++ b/hw/xfree86/parser/Layout.c @@ -116,10 +116,10 @@ xf86parseLayoutSection (void) { XF86ConfInactivePtr iptr; - iptr = xf86confcalloc (1, sizeof (XF86ConfInactiveRec)); + iptr = calloc (1, sizeof (XF86ConfInactiveRec)); iptr->list.next = NULL; if (xf86getSubToken (&(ptr->lay_comment)) != STRING) { - xf86conffree (iptr); + free (iptr); Error (INACTIVE_MSG, NULL); } iptr->inactive_device_str = val.str; @@ -132,7 +132,7 @@ xf86parseLayoutSection (void) XF86ConfAdjacencyPtr aptr; int absKeyword = 0; - aptr = xf86confcalloc (1, sizeof (XF86ConfAdjacencyRec)); + aptr = calloc (1, sizeof (XF86ConfAdjacencyRec)); aptr->list.next = NULL; aptr->adj_scrnum = -1; aptr->adj_where = CONF_ADJ_OBSOLETE; @@ -145,7 +145,7 @@ xf86parseLayoutSection (void) xf86unGetToken (token); token = xf86getSubToken(&(ptr->lay_comment)); if (token != STRING) { - xf86conffree(aptr); + free(aptr); Error (SCREEN_MSG, NULL); } aptr->adj_screen_str = val.str; @@ -173,7 +173,7 @@ xf86parseLayoutSection (void) absKeyword = 1; break; case EOF_TOKEN: - xf86conffree(aptr); + free(aptr); Error (UNEXPECTED_EOF_MSG, NULL); break; default: @@ -194,13 +194,13 @@ xf86parseLayoutSection (void) aptr->adj_x = val.num; token = xf86getSubToken(&(ptr->lay_comment)); if (token != NUMBER) { - xf86conffree(aptr); + free(aptr); Error(INVALID_SCR_MSG, NULL); } aptr->adj_y = val.num; } else { if (absKeyword) { - xf86conffree(aptr); + free(aptr); Error(INVALID_SCR_MSG, NULL); } else xf86unGetToken (token); @@ -213,7 +213,7 @@ xf86parseLayoutSection (void) case CONF_ADJ_RELATIVE: token = xf86getSubToken(&(ptr->lay_comment)); if (token != STRING) { - xf86conffree(aptr); + free(aptr); Error(INVALID_SCR_MSG, NULL); } aptr->adj_refscreen = val.str; @@ -221,13 +221,13 @@ xf86parseLayoutSection (void) { token = xf86getSubToken(&(ptr->lay_comment)); if (token != NUMBER) { - xf86conffree(aptr); + free(aptr); Error(INVALID_SCR_MSG, NULL); } aptr->adj_x = val.num; token = xf86getSubToken(&(ptr->lay_comment)); if (token != NUMBER) { - xf86conffree(aptr); + free(aptr); Error(INVALID_SCR_MSG, NULL); } aptr->adj_y = val.num; @@ -239,21 +239,21 @@ xf86parseLayoutSection (void) /* bottom */ if (xf86getSubToken (&(ptr->lay_comment)) != STRING) { - xf86conffree(aptr); + free(aptr); Error (SCREEN_MSG, NULL); } aptr->adj_bottom_str = val.str; /* left */ if (xf86getSubToken (&(ptr->lay_comment)) != STRING) { - xf86conffree(aptr); + free(aptr); Error (SCREEN_MSG, NULL); } aptr->adj_left_str = val.str; /* right */ if (xf86getSubToken (&(ptr->lay_comment)) != STRING) { - xf86conffree(aptr); + free(aptr); Error (SCREEN_MSG, NULL); } aptr->adj_right_str = val.str; @@ -267,11 +267,11 @@ xf86parseLayoutSection (void) { XF86ConfInputrefPtr iptr; - iptr = xf86confcalloc (1, sizeof (XF86ConfInputrefRec)); + iptr = calloc (1, sizeof (XF86ConfInputrefRec)); iptr->list.next = NULL; iptr->iref_option_lst = NULL; if (xf86getSubToken (&(ptr->lay_comment)) != STRING) { - xf86conffree(iptr); + free(iptr); Error (INPUTDEV_MSG, NULL); } iptr->iref_inputdev_str = val.str; @@ -397,7 +397,7 @@ xf86freeAdjacencyList (XF86ConfAdjacencyPtr ptr) prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } @@ -413,7 +413,7 @@ xf86freeInputrefList (XF86ConfInputrefPtr ptr) xf86optionListFree (ptr->iref_option_lst); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } @@ -431,7 +431,7 @@ xf86freeLayoutList (XF86ConfLayoutPtr ptr) xf86freeInputrefList (ptr->lay_input_lst); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } diff --git a/hw/xfree86/parser/Module.c b/hw/xfree86/parser/Module.c index 2012ce6d2..ca323fc5a 100644 --- a/hw/xfree86/parser/Module.c +++ b/hw/xfree86/parser/Module.c @@ -108,11 +108,11 @@ xf86parseModuleSubSection (XF86LoadPtr head, char *name) break; case EOF_TOKEN: xf86parseError (UNEXPECTED_EOF_MSG, NULL); - xf86conffree(ptr); + free(ptr); return NULL; default: xf86parseError (INVALID_KEYWORD_MSG, xf86tokenString ()); - xf86conffree(ptr); + free(ptr); return NULL; break; } @@ -233,7 +233,7 @@ xf86addNewLoadDirective (XF86LoadPtr head, char *name, int type, XF86OptionPtr o XF86LoadPtr new; int token; - new = xf86confcalloc (1, sizeof (XF86LoadRec)); + new = calloc (1, sizeof (XF86LoadRec)); new->load_name = name; new->load_type = type; new->load_opt = opts; @@ -263,7 +263,7 @@ xf86freeModules (XF86ConfModulePtr ptr) TestFree (lptr->load_comment); prev = lptr; lptr = lptr->list.next; - xf86conffree (prev); + free (prev); } lptr = ptr->mod_disable_lst; while (lptr) @@ -272,8 +272,8 @@ xf86freeModules (XF86ConfModulePtr ptr) TestFree (lptr->load_comment); prev = lptr; lptr = lptr->list.next; - xf86conffree (prev); + free (prev); } TestFree (ptr->mod_comment); - xf86conffree (ptr); + free (ptr); } diff --git a/hw/xfree86/parser/Monitor.c b/hw/xfree86/parser/Monitor.c index 9d533125e..50de091fc 100644 --- a/hw/xfree86/parser/Monitor.c +++ b/hw/xfree86/parser/Monitor.c @@ -134,7 +134,7 @@ xf86freeModeLineList (XF86ConfModeLinePtr ptr) TestFree (ptr->ml_comment); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } @@ -580,7 +580,7 @@ VertDone: /* add to the end of the list of modes sections referenced here */ - mptr = xf86confcalloc (1, sizeof (XF86ConfModesLinkRec)); + mptr = calloc (1, sizeof (XF86ConfModesLinkRec)); mptr->list.next = NULL; mptr->ml_modes_str = val.str; mptr->ml_modes = NULL; @@ -822,7 +822,7 @@ xf86freeMonitorList (XF86ConfMonitorPtr ptr) xf86freeModeLineList (ptr->mon_modeline_lst); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } @@ -838,7 +838,7 @@ xf86freeModesList (XF86ConfModesPtr ptr) xf86freeModeLineList (ptr->mon_modeline_lst); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } diff --git a/hw/xfree86/parser/Pointer.c b/hw/xfree86/parser/Pointer.c index 30ad8df84..56a26ba74 100644 --- a/hw/xfree86/parser/Pointer.c +++ b/hw/xfree86/parser/Pointer.c @@ -186,15 +186,15 @@ xf86parsePointerSection (void) Error (ZAXISMAPPING_MSG, NULL); s1 = xf86uLongToString(val.num); if (xf86getSubToken (&(ptr->inp_comment)) != NUMBER || val.num < 0) { - xf86conffree(s1); + free(s1); Error (ZAXISMAPPING_MSG, NULL); } s2 = xf86uLongToString(val.num); l = strlen(s1) + 1 + strlen(s2) + 1; - s = xf86confmalloc(l); + s = malloc(l); sprintf(s, "%s %s", s1, s2); - xf86conffree(s1); - xf86conffree(s2); + free(s1); + free(s2); break; case XAXIS: s = strdup("x"); diff --git a/hw/xfree86/parser/Screen.c b/hw/xfree86/parser/Screen.c index 1afbf8f97..b3b004df6 100644 --- a/hw/xfree86/parser/Screen.c +++ b/hw/xfree86/parser/Screen.c @@ -169,7 +169,7 @@ xf86parseDisplaySubSection (void) while ((token = xf86getSubTokenWithTab (&(ptr->disp_comment), DisplayTab)) == STRING) { - mptr = xf86confcalloc (1, sizeof (XF86ModeRec)); + mptr = calloc (1, sizeof (XF86ModeRec)); mptr->mode_name = val.str; mptr->list.next = NULL; ptr->disp_mode_lst = (XF86ModePtr) @@ -292,7 +292,7 @@ xf86parseScreenSection (void) if (aptr == NULL) { - aptr = xf86confcalloc (1, sizeof (XF86ConfAdaptorLinkRec)); + aptr = calloc (1, sizeof (XF86ConfAdaptorLinkRec)); aptr->list.next = NULL; aptr->al_adaptor_str = val.str; ptr->scrn_adaptor_lst = (XF86ConfAdaptorLinkPtr) @@ -315,7 +315,7 @@ xf86parseScreenSection (void) if (xf86getSubToken (&(ptr->scrn_comment)) != STRING) Error (QUOTE_MSG, "SubSection"); { - xf86conffree(val.str); + free(val.str); HANDLE_LIST (scrn_display_lst, xf86parseDisplaySubSection, XF86ConfDisplayPtr); } @@ -456,7 +456,7 @@ xf86freeScreenList (XF86ConfScreenPtr ptr) xf86freeDisplayList (ptr->scrn_display_lst); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } @@ -470,7 +470,7 @@ xf86freeAdaptorLinkList (XF86ConfAdaptorLinkPtr ptr) TestFree (ptr->al_adaptor_str); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } @@ -485,7 +485,7 @@ xf86freeDisplayList (XF86ConfDisplayPtr ptr) xf86optionListFree (ptr->disp_option_lst); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } @@ -499,7 +499,7 @@ xf86freeModeList (XF86ModePtr ptr) TestFree (ptr->mode_name); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } diff --git a/hw/xfree86/parser/Vendor.c b/hw/xfree86/parser/Vendor.c index d1e608067..dce3f1ca1 100644 --- a/hw/xfree86/parser/Vendor.c +++ b/hw/xfree86/parser/Vendor.c @@ -223,7 +223,7 @@ xf86freeVendorList (XF86ConfVendorPtr p) TestFree (p->vnd_identifier); TestFree (p->vnd_comment); xf86optionListFree (p->vnd_option_lst); - xf86conffree (p); + free (p); } void @@ -239,6 +239,6 @@ xf86freeVendorSubList (XF86ConfVendSubPtr ptr) xf86optionListFree (ptr->vs_option_lst); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } diff --git a/hw/xfree86/parser/Video.c b/hw/xfree86/parser/Video.c index a8912cf44..beeb43e4f 100644 --- a/hw/xfree86/parser/Video.c +++ b/hw/xfree86/parser/Video.c @@ -86,7 +86,7 @@ xf86freeVideoPortList (XF86ConfVideoPortPtr ptr) xf86optionListFree (ptr->vp_option_lst); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } @@ -278,7 +278,7 @@ xf86freeVideoAdaptorList (XF86ConfVideoAdaptorPtr ptr) xf86optionListFree (ptr->va_option_lst); prev = ptr; ptr = ptr->list.next; - xf86conffree (prev); + free (prev); } } diff --git a/hw/xfree86/parser/read.c b/hw/xfree86/parser/read.c index b044a6af8..e965d209e 100644 --- a/hw/xfree86/parser/read.c +++ b/hw/xfree86/parser/read.c @@ -96,7 +96,7 @@ xf86readConfigFile (void) int token; XF86ConfigPtr ptr = NULL; - if ((ptr = xf86confcalloc (1, sizeof (XF86ConfigRec))) == NULL) + if ((ptr = calloc (1, sizeof (XF86ConfigRec))) == NULL) { return NULL; } @@ -118,107 +118,107 @@ xf86readConfigFile (void) xf86setSection (val.str); if (xf86nameCompare (val.str, "files") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_RETURN (conf_files, xf86parseFilesSection ()); } else if (xf86nameCompare (val.str, "serverflags") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_RETURN (conf_flags, xf86parseFlagsSection ()); } else if (xf86nameCompare (val.str, "pointer") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_LIST (conf_input_lst, xf86parsePointerSection, XF86ConfInputPtr); } else if (xf86nameCompare (val.str, "videoadaptor") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_LIST (conf_videoadaptor_lst, xf86parseVideoAdaptorSection, XF86ConfVideoAdaptorPtr); } else if (xf86nameCompare (val.str, "device") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_LIST (conf_device_lst, xf86parseDeviceSection, XF86ConfDevicePtr); } else if (xf86nameCompare (val.str, "monitor") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_LIST (conf_monitor_lst, xf86parseMonitorSection, XF86ConfMonitorPtr); } else if (xf86nameCompare (val.str, "modes") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_LIST (conf_modes_lst, xf86parseModesSection, XF86ConfModesPtr); } else if (xf86nameCompare (val.str, "screen") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_LIST (conf_screen_lst, xf86parseScreenSection, XF86ConfScreenPtr); } else if (xf86nameCompare(val.str, "inputdevice") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_LIST (conf_input_lst, xf86parseInputSection, XF86ConfInputPtr); } else if (xf86nameCompare (val.str, "module") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_RETURN (conf_modules, xf86parseModuleSection ()); } else if (xf86nameCompare (val.str, "serverlayout") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_LIST (conf_layout_lst, xf86parseLayoutSection, XF86ConfLayoutPtr); } else if (xf86nameCompare (val.str, "vendor") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_LIST (conf_vendor_lst, xf86parseVendorSection, XF86ConfVendorPtr); } else if (xf86nameCompare (val.str, "dri") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_RETURN (conf_dri, xf86parseDRISection ()); } else if (xf86nameCompare (val.str, "extensions") == 0) { - xf86conffree(val.str); + free(val.str); val.str = NULL; HANDLE_RETURN (conf_extensions, xf86parseExtensionsSection ()); } else { Error (INVALID_SECTION_MSG, xf86tokenString ()); - xf86conffree(val.str); + free(val.str); val.str = NULL; } break; default: Error (INVALID_KEYWORD_MSG, xf86tokenString ()); - xf86conffree(val.str); + free(val.str); val.str = NULL; } } @@ -306,5 +306,5 @@ xf86freeConfig (XF86ConfigPtr p) xf86freeExtensions (p->conf_extensions); TestFree(p->conf_comment); - xf86conffree (p); + free (p); } diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c index ecca9e68d..d2e8b6d2b 100644 --- a/hw/xfree86/parser/scan.c +++ b/hw/xfree86/parser/scan.c @@ -180,8 +180,8 @@ xf86getNextLine(void) if (configBufLen != CONFIG_BUF_LEN) { - tmpConfigBuf = xf86confmalloc(CONFIG_BUF_LEN); - tmpConfigRBuf = xf86confmalloc(CONFIG_BUF_LEN); + tmpConfigBuf = malloc(CONFIG_BUF_LEN); + tmpConfigRBuf = malloc(CONFIG_BUF_LEN); if (!tmpConfigBuf || !tmpConfigRBuf) { @@ -190,8 +190,8 @@ xf86getNextLine(void) * and free any partial allocations */ - xf86conffree(tmpConfigBuf); - xf86conffree(tmpConfigRBuf); + free(tmpConfigBuf); + free(tmpConfigRBuf); } else { @@ -202,8 +202,8 @@ xf86getNextLine(void) configBufLen = CONFIG_BUF_LEN; - xf86conffree(configBuf); - xf86conffree(configRBuf); + free(configBuf); + free(configRBuf); configBuf = tmpConfigBuf; configRBuf = tmpConfigRBuf; @@ -237,8 +237,8 @@ xf86getNextLine(void) if (!eolFound) { - tmpConfigBuf = xf86confrealloc(configBuf, configBufLen + CONFIG_BUF_LEN); - tmpConfigRBuf = xf86confrealloc(configRBuf, configBufLen + CONFIG_BUF_LEN); + tmpConfigBuf = realloc(configBuf, configBufLen + CONFIG_BUF_LEN); + tmpConfigRBuf = realloc(configRBuf, configBufLen + CONFIG_BUF_LEN); if (!tmpConfigBuf || !tmpConfigRBuf) { @@ -420,7 +420,7 @@ again: } while ((c != '\"') && (c != '\n') && (c != '\r') && (c != '\0')); configRBuf[i] = '\0'; - val.str = xf86confmalloc (strlen (configRBuf) + 1); + val.str = malloc (strlen (configRBuf) + 1); strcpy (val.str, configRBuf); /* private copy ! */ return (STRING); } @@ -595,7 +595,7 @@ xf86pathIsSafe(const char *path) #endif #define BAIL_OUT do { \ - xf86conffree(result); \ + free(result); \ return NULL; \ } while (0) @@ -632,7 +632,7 @@ DoSubstitution(const char *template, const char *cmdline, const char *projroot, if (envUsed) *envUsed = 0; - result = xf86confmalloc(PATH_MAX + 1); + result = malloc(PATH_MAX + 1); l = 0; for (i = 0; template[i]; i++) { if (template[i] != '%') { @@ -669,11 +669,11 @@ DoSubstitution(const char *template, const char *cmdline, const char *projroot, break; case 'H': if (!hostname) { - if ((hostname = xf86confmalloc(MAXHOSTNAMELEN + 1))) { + if ((hostname = malloc(MAXHOSTNAMELEN + 1))) { if (gethostname(hostname, MAXHOSTNAMELEN) == 0) { hostname[MAXHOSTNAMELEN] = '\0'; } else { - xf86conffree(hostname); + free(hostname); hostname = NULL; } } @@ -791,7 +791,7 @@ xf86openConfigFile(const char *path, const char *cmdline, const char *projroot) if (!path || !path[0]) path = DEFAULT_CONF_PATH; - pathcopy = xf86confmalloc(strlen(path) + 1); + pathcopy = malloc(strlen(path) + 1); strcpy(pathcopy, path); if (!projroot || !projroot[0]) projroot = PROJECTROOT; @@ -811,7 +811,7 @@ xf86openConfigFile(const char *path, const char *cmdline, const char *projroot) } } if (configPath && !configFile) { - xf86conffree(configPath); + free(configPath); configPath = NULL; } template = strtok(NULL, ","); @@ -834,21 +834,21 @@ xf86openConfigFile(const char *path, const char *cmdline, const char *projroot) } } if (configPath && !configFile) { - xf86conffree(configPath); + free(configPath); configPath = NULL; } template = strtok(NULL, ","); } } - xf86conffree(pathcopy); + free(pathcopy); if (!configFile) { return NULL; } - configBuf = xf86confmalloc (CONFIG_BUF_LEN); - configRBuf = xf86confmalloc (CONFIG_BUF_LEN); + configBuf = malloc (CONFIG_BUF_LEN); + configRBuf = malloc (CONFIG_BUF_LEN); configBuf[0] = '\0'; /* sanity ... */ return configPath; @@ -857,11 +857,11 @@ xf86openConfigFile(const char *path, const char *cmdline, const char *projroot) void xf86closeConfigFile (void) { - xf86conffree (configPath); + free (configPath); configPath = NULL; - xf86conffree (configRBuf); + free (configRBuf); configRBuf = NULL; - xf86conffree (configBuf); + free (configBuf); configBuf = NULL; if (configFile) { @@ -878,8 +878,8 @@ xf86setBuiltinConfig(const char *config[]) { builtinConfig = config; configPath = strdup(""); - configBuf = xf86confmalloc (CONFIG_BUF_LEN); - configRBuf = xf86confmalloc (CONFIG_BUF_LEN); + configBuf = malloc (CONFIG_BUF_LEN); + configRBuf = malloc (CONFIG_BUF_LEN); configBuf[0] = '\0'; /* sanity ... */ } @@ -915,8 +915,8 @@ void xf86setSection (char *section) { if (configSection) - xf86conffree(configSection); - configSection = xf86confmalloc(strlen (section) + 1); + free(configSection); + configSection = malloc(strlen (section) + 1); strcpy (configSection, section); } @@ -1013,7 +1013,7 @@ xf86addComment(char *cur, char *add) endnewline = add[len - 1] == '\n'; len += 1 + iscomment + (!hasnewline) + (!endnewline) + eol_seen; - if ((str = xf86confrealloc(cur, len + curlen)) == NULL) + if ((str = realloc(cur, len + curlen)) == NULL) return (cur); cur = str; From 0cfd48130842685828e0662a27272a3a65facd23 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 23 Mar 2009 11:41:16 +1000 Subject: [PATCH 52/52] dix: Dont change the keyboard mapping on non-keyboard devices. Signed-off-by: Peter Hutterer --- dix/devices.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dix/devices.c b/dix/devices.c index 065b20237..4a36669ac 100644 --- a/dix/devices.c +++ b/dix/devices.c @@ -1505,6 +1505,8 @@ ProcChangeKeyboardMapping(ClientPtr client) for (tmp = inputInfo.devices; tmp; tmp = tmp->next) { if (tmp->isMaster || tmp->u.master != pDev) continue; + if (!tmp->key) + continue; rc = XaceHook(XACE_DEVICE_ACCESS, client, pDev, DixManageAccess); if (rc != Success)