Commit 85a28a68 authored by Ulrich Sibiller's avatar Ulrich Sibiller Committed by Mike Gabriel

Clipboard.c: add macro for safe XFree calls with ptr clearance

parent fab6911b
...@@ -211,9 +211,9 @@ void nxagentPrintClipboardStat(char *header) ...@@ -211,9 +211,9 @@ void nxagentPrintClipboardStat(char *header)
fprintf(stderr, "lastServer\n"); fprintf(stderr, "lastServer\n");
fprintf(stderr, " lastServerRequestor (Window) [0x%x]\n", lastServerRequestor); fprintf(stderr, " lastServerRequestor (Window) [0x%x]\n", lastServerRequestor);
if (s) XFree(s); s = XGetAtomName(nxagentDisplay, lastServerProperty); SAFE_XFree(s); s = XGetAtomName(nxagentDisplay, lastServerProperty);
fprintf(stderr, " lastServerProperty (Atom) [% 4d][%s]\n", lastServerProperty, s); fprintf(stderr, " lastServerProperty (Atom) [% 4d][%s]\n", lastServerProperty, s);
if (s) XFree(s); s = XGetAtomName(nxagentDisplay, lastServerTarget); SAFE_XFree(s); s = XGetAtomName(nxagentDisplay, lastServerTarget);
fprintf(stderr, " lastServerTarget (Atom) [% 4d][%s]\n", lastServerTarget, s); fprintf(stderr, " lastServerTarget (Atom) [% 4d][%s]\n", lastServerTarget, s);
fprintf(stderr, " lastServerTime (Time) [%u]\n", lastServerTime); fprintf(stderr, " lastServerTime (Time) [%u]\n", lastServerTime);
...@@ -246,18 +246,18 @@ void nxagentPrintClipboardStat(char *header) ...@@ -246,18 +246,18 @@ void nxagentPrintClipboardStat(char *header)
fprintf(stderr, " CurrentSelections[].window [0x%x]\n", CurrentSelections[nxagentClipboardSelection].window); fprintf(stderr, " CurrentSelections[].window [0x%x]\n", CurrentSelections[nxagentClipboardSelection].window);
fprintf(stderr, "Atoms (server side)\n"); fprintf(stderr, "Atoms (server side)\n");
if (s) XFree(s); s = XGetAtomName(nxagentDisplay, serverTARGETS); SAFE_XFree(s); s = XGetAtomName(nxagentDisplay, serverTARGETS);
fprintf(stderr, " serverTARGETS [% 4d][%s]\n", serverTARGETS, validateString(s)); fprintf(stderr, " serverTARGETS [% 4d][%s]\n", serverTARGETS, validateString(s));
if (s) XFree(s); s = XGetAtomName(nxagentDisplay, serverTEXT); SAFE_XFree(s); s = XGetAtomName(nxagentDisplay, serverTEXT);
fprintf(stderr, " serverTEXT [% d][%s]\n", serverTEXT, s); fprintf(stderr, " serverTEXT [% d][%s]\n", serverTEXT, s);
if (s) XFree(s); s = XGetAtomName(nxagentDisplay, serverUTF8_STRING); SAFE_XFree(s); s = XGetAtomName(nxagentDisplay, serverUTF8_STRING);
fprintf(stderr, " serverUTF8_STRING [% 4d][%s]\n", serverUTF8_STRING, s); fprintf(stderr, " serverUTF8_STRING [% 4d][%s]\n", serverUTF8_STRING, s);
if (s) XFree(s); s = XGetAtomName(nxagentDisplay, serverCutProperty); SAFE_XFree(s); s = XGetAtomName(nxagentDisplay, serverCutProperty);
fprintf(stderr, " serverCutProperty [% 4d][%s]\n", serverCutProperty, s); fprintf(stderr, " serverCutProperty [% 4d][%s]\n", serverCutProperty, s);
if (s) XFree(s); s = XGetAtomName(nxagentDisplay, nxagentClipboardAtom); SAFE_XFree(s); s = XGetAtomName(nxagentDisplay, nxagentClipboardAtom);
fprintf(stderr, " nxagentClipboardAtom [% 4d][%s]\n", nxagentClipboardAtom, s); fprintf(stderr, " nxagentClipboardAtom [% 4d][%s]\n", nxagentClipboardAtom, s);
if (s) XFree(s); s = XGetAtomName(nxagentDisplay, nxagentTimestampAtom); SAFE_XFree(s); s = XGetAtomName(nxagentDisplay, nxagentTimestampAtom);
fprintf(stderr, " nxagentTimestampAtom [% 4d][%s]\n", nxagentTimestampAtom, s); fprintf(stderr, " nxagentTimestampAtom [% 4d][%s]\n", nxagentTimestampAtom, s);
fprintf(stderr, "Atoms (inside nxagent)\n"); fprintf(stderr, "Atoms (inside nxagent)\n");
...@@ -270,7 +270,7 @@ void nxagentPrintClipboardStat(char *header) ...@@ -270,7 +270,7 @@ void nxagentPrintClipboardStat(char *header)
fprintf(stderr, "\\------------------------------------------------------------------------------\n"); fprintf(stderr, "\\------------------------------------------------------------------------------\n");
if (s) XFree(s); s = NULL; SAFE_XFree(s);
#endif #endif
} }
...@@ -460,10 +460,7 @@ FIXME: Do we need this? ...@@ -460,10 +460,7 @@ FIXME: Do we need this?
fprintf(stderr, "SelectionRequest event aborting sele=[%s] ext target=[%s] Atom size is [%d]\n", fprintf(stderr, "SelectionRequest event aborting sele=[%s] ext target=[%s] Atom size is [%d]\n",
validateString(NameForAtom(X->xselectionrequest.selection)), strTarget, sizeof(Atom)); validateString(NameForAtom(X->xselectionrequest.selection)), strTarget, sizeof(Atom));
if (strTarget != NULL) SAFE_XFree(strTarget);
{
XFree(strTarget);
}
*/ */
memset(&eventSelection, 0, sizeof(XSelectionEvent)); memset(&eventSelection, 0, sizeof(XSelectionEvent));
eventSelection.property = None; eventSelection.property = None;
...@@ -843,11 +840,7 @@ void nxagentCollectPropertyEvent(int resource) ...@@ -843,11 +840,7 @@ void nxagentCollectPropertyEvent(int resource)
lastClientWindowPtr = NULL; lastClientWindowPtr = NULL;
SetClientSelectionStage(None); SetClientSelectionStage(None);
if (pszReturnData != NULL) SAFE_XFree(pszReturnData);
{
XFree(pszReturnData);
}
return; return;
} }
...@@ -867,11 +860,7 @@ void nxagentCollectPropertyEvent(int resource) ...@@ -867,11 +860,7 @@ void nxagentCollectPropertyEvent(int resource)
lastClientWindowPtr = NULL; lastClientWindowPtr = NULL;
SetClientSelectionStage(None); SetClientSelectionStage(None);
if (pszReturnData != NULL) SAFE_XFree(pszReturnData);
{
XFree(pszReturnData);
}
return; return;
} }
...@@ -897,11 +886,7 @@ void nxagentCollectPropertyEvent(int resource) ...@@ -897,11 +886,7 @@ void nxagentCollectPropertyEvent(int resource)
lastClientWindowPtr = NULL; lastClientWindowPtr = NULL;
SetClientSelectionStage(None); SetClientSelectionStage(None);
if (pszReturnData != NULL) SAFE_XFree(pszReturnData);
{
XFree(pszReturnData);
}
return; return;
} }
...@@ -940,11 +925,7 @@ void nxagentCollectPropertyEvent(int resource) ...@@ -940,11 +925,7 @@ void nxagentCollectPropertyEvent(int resource)
lastClientWindowPtr = NULL; lastClientWindowPtr = NULL;
SetClientSelectionStage(None); SetClientSelectionStage(None);
if (pszReturnData != NULL) SAFE_XFree(pszReturnData);
{
XFree(pszReturnData);
}
return; return;
} }
...@@ -985,8 +966,7 @@ void nxagentCollectPropertyEvent(int resource) ...@@ -985,8 +966,7 @@ void nxagentCollectPropertyEvent(int resource)
} }
} }
XFree(pszReturnData); SAFE_XFree(pszReturnData);
pszReturnData = NULL;
} }
void nxagentNotifySelection(XEvent *X) void nxagentNotifySelection(XEvent *X)
...@@ -1122,8 +1102,7 @@ void nxagentNotifySelection(XEvent *X) ...@@ -1122,8 +1102,7 @@ void nxagentNotifySelection(XEvent *X)
} }
/* /*
* XFree(pszReturnData); * SAFE_XFree(pszReturnData);
* pszReturnData=NULL;
*/ */
} }
......
...@@ -44,4 +44,6 @@ static inline const char * validateString(const char *str) { ...@@ -44,4 +44,6 @@ static inline const char * validateString(const char *str) {
return str ? str : "(null)"; return str ? str : "(null)";
} }
#define SAFE_XFree(what) do {if (what) {XFree(what); what = NULL;}} while (0)
#endif /* __Utils_H__ */ #endif /* __Utils_H__ */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment