From c02ab70efa7b9927b8459495a5ee11f50b17667c Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Fri, 3 May 2019 19:18:20 +0200 Subject: NXdispatch.c: Simplify InitSelections() by calling upstream version from dispatch.c --- nx-X11/programs/Xserver/dix/dispatch.c | 8 +++++--- nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c | 8 ++------ 2 files changed, 7 insertions(+), 9 deletions(-) (limited to 'nx-X11/programs/Xserver') diff --git a/nx-X11/programs/Xserver/dix/dispatch.c b/nx-X11/programs/Xserver/dix/dispatch.c index f80cec0dd..0d4a80e2c 100644 --- a/nx-X11/programs/Xserver/dix/dispatch.c +++ b/nx-X11/programs/Xserver/dix/dispatch.c @@ -213,16 +213,18 @@ UpdateCurrentTimeIf() currentTime = systime; } -#ifndef NXAGENT_SERVER void -InitSelections() +#ifdef NXAGENT_SERVER +xorg_InitSelections(void) +#else +InitSelections(void) +#endif { if (CurrentSelections) free(CurrentSelections); CurrentSelections = (Selection *)NULL; NumCurrentSelections = 0; } -#endif /* NXAGENT_SERVER */ #undef SMART_DEBUG diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c index 4a9ae73ae..9e365f372 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c @@ -203,12 +203,9 @@ extern int nxagentMaxSelections; extern int nxOpenFont(ClientPtr, XID, Mask, unsigned, char*); void -InitSelections() +InitSelections(void) { - if (CurrentSelections) - free(CurrentSelections); - CurrentSelections = (Selection *)NULL; - NumCurrentSelections = 0; + xorg_InitSelections(); #ifdef NXAGENT_CLIPBOARD { @@ -232,7 +229,6 @@ InitSelections() CurrentSelections[nxagentClipboardSelection].client = NullClient; } #endif - } #define MAJOROP ((xReq *)client->requestBuffer)->reqType -- cgit v1.2.3 From 24c42813d8c2d9ced7233bf97a0026f72067d917 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Fri, 3 May 2019 23:15:02 +0200 Subject: NXdispatch.c: call upstream CloseDownClient() remove ~80 duplicate lines --- nx-X11/programs/Xserver/dix/dispatch.c | 8 ++- nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c | 85 +------------------------ 2 files changed, 6 insertions(+), 87 deletions(-) (limited to 'nx-X11/programs/Xserver') diff --git a/nx-X11/programs/Xserver/dix/dispatch.c b/nx-X11/programs/Xserver/dix/dispatch.c index 0d4a80e2c..ef3d7b021 100644 --- a/nx-X11/programs/Xserver/dix/dispatch.c +++ b/nx-X11/programs/Xserver/dix/dispatch.c @@ -3480,11 +3480,14 @@ InitProcVectors(void) * then killed again, the client is really destroyed. *********************/ -#ifndef NXAGENT_SERVER char dispatchExceptionAtReset = DE_RESET; void -CloseDownClient(register ClientPtr client) +#ifdef NXAGENT_SERVER +xorg_CloseDownClient(ClientPtr client) +#else +CloseDownClient(ClientPtr client) +#endif { Bool really_close_down = client->clientGone || client->closeDownMode == DestroyAll; @@ -3569,7 +3572,6 @@ CloseDownClient(register ClientPtr client) currentMaxClients--; } } -#endif /* NXAGENT_SERVER */ static void KillAllClients() diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c index 9e365f372..c427c05f2 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c @@ -128,8 +128,6 @@ Equipment Corporation. const int nxagentMaxFontNames = 10000; -char dispatchExceptionAtReset = DE_RESET; - /* * This allows the agent to exit if no * client is connected within a timeout. @@ -1089,9 +1087,6 @@ int ProcForceScreenSaver(register ClientPtr client) void CloseDownClient(register ClientPtr client) { - Bool really_close_down = client->clientGone || - client->closeDownMode == DestroyAll; - /* * There must be a better way to hook a * call-back function to be called any @@ -1114,85 +1109,7 @@ CloseDownClient(register ClientPtr client) nxagentCheckIfShadowAgent(client); - if (!client->clientGone) - { - /* ungrab server if grabbing client dies */ - if (grabState != GrabNone && grabClient == client) - { - UngrabServer(client); - } - BITCLEAR(grabWaiters, client->index); - DeleteClientFromAnySelections(client); - ReleaseActiveGrabs(client); - DeleteClientFontStuff(client); - if (!really_close_down) - { - /* This frees resources that should never be retained - * no matter what the close down mode is. Actually we - * could do this unconditionally, but it's probably - * better not to traverse all the client's resources - * twice (once here, once a few lines down in - * FreeClientResources) in the common case of - * really_close_down == TRUE. - */ - FreeClientNeverRetainResources(client); - client->clientState = ClientStateRetained; - if (ClientStateCallback) - { - NewClientInfoRec clientinfo; - - clientinfo.client = client; - clientinfo.prefix = (xConnSetupPrefix *)NULL; - clientinfo.setup = (xConnSetup *) NULL; - CallCallbacks((&ClientStateCallback), (void *)&clientinfo); - } - } - client->clientGone = TRUE; /* so events aren't sent to client */ - if (ClientIsAsleep(client)) - ClientSignal (client); - ProcessWorkQueueZombies(); - CloseDownConnection(client); - - /* If the client made it to the Running stage, nClients has - * been incremented on its behalf, so we need to decrement it - * now. If it hasn't gotten to Running, nClients has *not* - * been incremented, so *don't* decrement it. - */ - if (client->clientState != ClientStateInitial && - client->clientState != ClientStateAuthenticating ) - { - --nClients; - } - } - - if (really_close_down) - { - if (client->clientState == ClientStateRunning && nClients == 0) - dispatchException |= dispatchExceptionAtReset; - - client->clientState = ClientStateGone; - if (ClientStateCallback) - { - NewClientInfoRec clientinfo; - - clientinfo.client = client; - clientinfo.prefix = (xConnSetupPrefix *)NULL; - clientinfo.setup = (xConnSetup *) NULL; - CallCallbacks((&ClientStateCallback), (void *)&clientinfo); - } - FreeClientResources(client); - /* Disable client ID tracking. This must be done after - * ClientStateCallback. */ - ReleaseClientIds(client); - if (client->index < nextFreeClientID) - nextFreeClientID = client->index; - clients[client->index] = NullClient; - SmartLastClient = NullClient; - free(client); - - while (!clients[currentMaxClients-1]) - currentMaxClients--; - } + xorg_CloseDownClient(client); } int -- cgit v1.2.3 From c61ac23f244899e68e77bf0381eb477a77a28740 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Fri, 3 May 2019 23:50:45 +0200 Subject: NXdispatch.c: simplify InitClientPrivates() by calling the upstream function from dix/dispatch.c --- nx-X11/programs/Xserver/dix/dispatch.c | 6 ++-- nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c | 42 ++++++------------------- 2 files changed, 13 insertions(+), 35 deletions(-) (limited to 'nx-X11/programs/Xserver') diff --git a/nx-X11/programs/Xserver/dix/dispatch.c b/nx-X11/programs/Xserver/dix/dispatch.c index ef3d7b021..3ab9b2472 100644 --- a/nx-X11/programs/Xserver/dix/dispatch.c +++ b/nx-X11/programs/Xserver/dix/dispatch.c @@ -3648,9 +3648,12 @@ void InitClient(ClientPtr client, int i, void * ospriv) client->clientIds = NULL; } -#ifndef NXAGENT_SERVER int +#ifdef NXAGENT_SERVER +xorg_InitClientPrivates(ClientPtr client) +#else InitClientPrivates(ClientPtr client) +#endif { register char *ptr; DevUnion *ppriv; @@ -3694,7 +3697,6 @@ InitClientPrivates(ClientPtr client) } return 1; } -#endif /* NXAGENT_SERVER */ /************************ * int NextAvailableClient(ospriv) diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c index c427c05f2..ace2941b1 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c @@ -1115,41 +1115,17 @@ CloseDownClient(register ClientPtr client) int InitClientPrivates(ClientPtr client) { - register char *ptr; - DevUnion *ppriv; - register unsigned *sizes; - register unsigned size; - register int i; - - if (totalClientSize == sizeof(ClientRec)) - ppriv = (DevUnion *)NULL; - else if (client->index) - ppriv = (DevUnion *)(client + 1); - else - { - ppriv = (DevUnion *)malloc(totalClientSize - sizeof(ClientRec)); - if (!ppriv) - return 0; - } - client->devPrivates = ppriv; - sizes = clientPrivateSizes; - ptr = (char *)(ppriv + clientPrivateLen); - for (i = clientPrivateLen; --i >= 0; ppriv++, sizes++) + int ret = xorg_InitClientPrivates(client); + + if (ret == 1) { - if ( (size = *sizes) ) - { - ppriv->ptr = (void *)ptr; - ptr += size; - } - else - ppriv->ptr = (void *)NULL; - } - /* - * Initialize the private members. - */ + /* + * Initialize the private members. + */ - nxagentInitClientPrivates(client); + nxagentInitClientPrivates(client); + } - return 1; + return ret; } -- cgit v1.2.3 From 0fb6af25c8bb42c15f069f34b6c50797706d12e6 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Mon, 28 Oct 2019 22:30:54 +0100 Subject: NXdispatch.c: mark NX changes --- nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c | 64 ++++++++++++++++++------- 1 file changed, 47 insertions(+), 17 deletions(-) (limited to 'nx-X11/programs/Xserver') diff --git a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c index ace2941b1..00fb4ddd8 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c +++ b/nx-X11/programs/Xserver/hw/nxagent/NXdispatch.c @@ -629,12 +629,17 @@ ProcQueryTree(register ClientPtr client) reply.parent = (Window)None; pHead = RealChildHead(pWin); for (pChild = pWin->lastChild; pChild != pHead; pChild = pChild->prevSib) +#ifdef NXAGENT_SERVER { - if (!IsViewportFrame(pChild)) - { - numChildren++; - } + if (!IsViewportFrame(pChild)) + { + numChildren++; + } + } +#else + numChildren++; +#endif if (numChildren) { int curChild = 0; @@ -643,12 +648,16 @@ ProcQueryTree(register ClientPtr client) if (!childIDs) return BadAlloc; for (pChild = pWin->lastChild; pChild != pHead; pChild = pChild->prevSib) - { - if (!IsViewportFrame(pChild)) - { - childIDs[curChild++] = pChild->drawable.id; - } +#ifdef NXAGENT_SERVER + { + if (!IsViewportFrame(pChild)) + { + childIDs[curChild++] = pChild->drawable.id; + } } +#else + childIDs[curChild++] = pChild->drawable.id; +#endif } reply.nChildren = numChildren; @@ -707,8 +716,12 @@ ProcConvertSelection(register ClientPtr client) i = 0; while ((i < NumCurrentSelections) && CurrentSelections[i].selection != stuff->selection) i++; - if ((i < NumCurrentSelections) && + if ((i < NumCurrentSelections) && +#ifdef NXAGENT_SERVER (CurrentSelections[i].window != None) && (CurrentSelections[i].client != NullClient) +#else + (CurrentSelections[i].window != None)) +#endif #ifdef XCSECURITY && (!client->CheckAccess || (* client->CheckAccess)(client, CurrentSelections[i].window, @@ -716,7 +729,6 @@ ProcConvertSelection(register ClientPtr client) CurrentSelections[i].pWin)) #endif ) - { memset(&event, 0, sizeof(xEvent)); event.u.u.type = SelectionRequest; @@ -755,13 +767,14 @@ int ProcOpenFont(register ClientPtr client) { int err; - char fontReq[256]; REQUEST(xOpenFontReq); REQUEST_FIXED_SIZE(xOpenFontReq, stuff->nbytes); client->errorValue = stuff->fid; LEGAL_NEW_RESOURCE(stuff->fid, client); +#ifdef NXAGENT_SERVER + char fontReq[256]; memcpy(fontReq,(char *)&stuff[1],(stuff->nbytes<256)?stuff->nbytes:255); fontReq[stuff->nbytes]=0; if (strchr(fontReq,'*') || strchr(fontReq,'?')) @@ -774,6 +787,7 @@ ProcOpenFont(register ClientPtr client) stuff->nbytes, (char *)&stuff[1]); } else +#endif err = OpenFont(client, stuff->fid, (Mask) 0, stuff->nbytes, (char *)&stuff[1]); if (err == Success) @@ -844,11 +858,12 @@ ProcCloseFont(register ClientPtr client) int ProcListFonts(register ClientPtr client) { - char tmp[256]; - REQUEST(xListFontsReq); REQUEST_FIXED_SIZE(xListFontsReq, stuff->nbytes); + +#ifdef NXAGENT_SERVER + char tmp[256]; memcpy(tmp,(unsigned char *) &stuff[1],(stuff->nbytes<256)?stuff->nbytes:255); tmp[stuff->nbytes]=0; @@ -856,6 +871,8 @@ ProcListFonts(register ClientPtr client) fprintf(stderr, "Dispatch: ListFont request with pattern %s max_names=%d\n",tmp,stuff->maxNames); #endif nxagentListRemoteFonts(tmp, stuff -> maxNames < nxagentMaxFontNames ? nxagentMaxFontNames : stuff->maxNames); +#endif + return ListFonts(client, (unsigned char *) &stuff[1], stuff->nbytes, stuff->maxNames); } @@ -863,23 +880,24 @@ ProcListFonts(register ClientPtr client) int ProcListFontsWithInfo(register ClientPtr client) { - char tmp[256]; REQUEST(xListFontsWithInfoReq); REQUEST_FIXED_SIZE(xListFontsWithInfoReq, stuff->nbytes); +#ifdef NXAGENT_SERVER + char tmp[256]; memcpy(tmp,(unsigned char *) &stuff[1],(stuff->nbytes<256)?stuff->nbytes:255); tmp[stuff->nbytes]=0; #ifdef NXAGENT_FONTMATCH_DEBUG fprintf(stderr, "Dispatch: ListFont with info request with pattern %s max_names=%d\n",tmp,stuff->maxNames); #endif nxagentListRemoteFonts(tmp, stuff -> maxNames < nxagentMaxFontNames ? nxagentMaxFontNames :stuff->maxNames); +#endif return StartListFontsWithInfo(client, stuff->nbytes, (unsigned char *) &stuff[1], stuff->maxNames); } - int ProcFreePixmap(register ClientPtr client) { @@ -971,6 +989,7 @@ ProcSetScreenSaver (register ClientPtr client) return BadValue; } +#ifdef NXAGENT_SERVER /* * The NX agent uses the screen saver procedure * to monitor the user activities and launch its @@ -985,6 +1004,7 @@ ProcSetScreenSaver (register ClientPtr client) if (nxagentOption(Timeout) == 0) { +#endif if (blankingOption == DefaultBlanking) { ScreenSaverBlanking = defaultScreenSaverBlanking; @@ -1022,7 +1042,9 @@ ProcSetScreenSaver (register ClientPtr client) } SetScreenSaverTimer(); +#ifdef NXAGENT_SERVER } + #ifdef TEST else @@ -1032,7 +1054,7 @@ ProcSetScreenSaver (register ClientPtr client) } #endif - +#endif return (client->noClientException); } @@ -1050,6 +1072,7 @@ int ProcForceScreenSaver(register ClientPtr client) return BadValue; } +#ifdef NXAGENT_SERVER /* * The NX agent uses the screen saver procedure * to monitor the user activities and launch its @@ -1060,7 +1083,9 @@ int ProcForceScreenSaver(register ClientPtr client) if (nxagentOption(Timeout) == 0) { +#endif SaveScreens(SCREEN_SAVER_FORCER, (int)stuff->mode); +#ifdef NXAGENT_SERVER } #ifdef TEST @@ -1072,6 +1097,7 @@ int ProcForceScreenSaver(register ClientPtr client) } #endif +#endif return client->noClientException; } @@ -1087,6 +1113,7 @@ int ProcForceScreenSaver(register ClientPtr client) void CloseDownClient(register ClientPtr client) { +#ifdef NXAGENT_SERVER /* * There must be a better way to hook a * call-back function to be called any @@ -1108,6 +1135,7 @@ CloseDownClient(register ClientPtr client) */ nxagentCheckIfShadowAgent(client); +#endif xorg_CloseDownClient(client); } @@ -1117,6 +1145,7 @@ InitClientPrivates(ClientPtr client) { int ret = xorg_InitClientPrivates(client); +#ifdef NXAGENT_SERVER if (ret == 1) { @@ -1126,6 +1155,7 @@ InitClientPrivates(ClientPtr client) nxagentInitClientPrivates(client); } +#endif return ret; } -- cgit v1.2.3