diff options
author | marha <marha@users.sourceforge.net> | 2011-02-25 08:27:07 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-02-25 08:27:07 +0000 |
commit | 27b0ed125725f09242054563bb65ac20cfaa17ff (patch) | |
tree | 6fe92374761ae87d8541d117605db27f3486aee1 /xorg-server/record | |
parent | e8d899178e9ebe174e6b4a53297d3dfced8003f0 (diff) | |
parent | 8268836508edd4ba2a3045c9ba937397df7bf2c5 (diff) | |
download | vcxsrv-27b0ed125725f09242054563bb65ac20cfaa17ff.tar.gz vcxsrv-27b0ed125725f09242054563bb65ac20cfaa17ff.tar.bz2 vcxsrv-27b0ed125725f09242054563bb65ac20cfaa17ff.zip |
svn merge ^/branches/released .
Diffstat (limited to 'xorg-server/record')
-rw-r--r-- | xorg-server/record/record.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/xorg-server/record/record.c b/xorg-server/record/record.c index 5e15c956a..88bf5163e 100644 --- a/xorg-server/record/record.c +++ b/xorg-server/record/record.c @@ -77,6 +77,7 @@ typedef struct { char bufCategory; /* category of protocol in replyBuffer */
int numBufBytes; /* number of bytes in replyBuffer */
char replyBuffer[REPLY_BUF_SIZE]; /* buffered recorded protocol */
+ int inFlush; /* are we inside RecordFlushReplyBuffer */
} RecordContextRec, *RecordContextPtr;
/* RecordMinorOpRec - to hold minor opcode selections for extension requests
@@ -245,8 +246,9 @@ RecordFlushReplyBuffer( int len2
)
{
- if (!pContext->pRecordingClient || pContext->pRecordingClient->clientGone)
+ if (!pContext->pRecordingClient || pContext->pRecordingClient->clientGone || pContext->inFlush)
return;
+ ++pContext->inFlush;
if (pContext->numBufBytes)
WriteToClient(pContext->pRecordingClient, pContext->numBufBytes,
(char *)pContext->replyBuffer);
@@ -255,6 +257,7 @@ RecordFlushReplyBuffer( WriteToClient(pContext->pRecordingClient, len1, (char *)data1);
if (len2)
WriteToClient(pContext->pRecordingClient, len2, (char *)data2);
+ --pContext->inFlush;
} /* RecordFlushReplyBuffer */
@@ -1938,6 +1941,7 @@ ProcRecordCreateContext(ClientPtr client) pContext->numBufBytes = 0;
pContext->pBufClient = NULL;
pContext->continuedReply = 0;
+ pContext->inFlush = 0;
err = RecordRegisterClients(pContext, client,
(xRecordRegisterClientsReq *)stuff);
|