summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/MultiSrc.c6
-rw-r--r--src/TextSrc.c2
2 files changed, 6 insertions, 2 deletions
diff --git a/src/MultiSrc.c b/src/MultiSrc.c
index 5d23396..fa60476 100644
--- a/src/MultiSrc.c
+++ b/src/MultiSrc.c
@@ -1189,7 +1189,7 @@ InitStringOrFile(MultiSrcObject src, Bool newString)
length = (int)strlen((char *)src->multi_src.string);
/* Wasteful, throwing away the WC string, but need side effect! */
- (void)_XawTextMBToWC(d, (char *)src->multi_src.string, &length);
+ XtFree((XtPointer)_XawTextMBToWC(d, (char *)src->multi_src.string, &length));
src->multi_src.length = (XawTextPosition)length;
}
else {
@@ -1390,8 +1390,10 @@ LoadPieces(MultiSrcObject src, FILE *file, char *string)
ptr += piece->used;
} while (left > 0);
+ if ((char *)local_str != temp_mb_holder)
+ XtFree((XtPointer)local_str);
if (temp_mb_holder)
- XtFree((char*)temp_mb_holder);
+ XtFree(temp_mb_holder);
}
/*
diff --git a/src/TextSrc.c b/src/TextSrc.c
index 0138e2a..9776d00 100644
--- a/src/TextSrc.c
+++ b/src/TextSrc.c
@@ -1587,6 +1587,7 @@ _XawTextMBToWC(Display *d, char *str, int *len_in_out)
XtFree(buf);
if (XwcTextPropertyToTextList(d, &textprop,
(wchar_t***)&wlist, &count) != Success) {
+ XtFree((XtPointer)textprop.value);
XtWarningMsg("convertError", "multiSourceCreate", "XawError",
"Non-character code(s) in source.", NULL, NULL);
*len_in_out = 0;
@@ -1595,6 +1596,7 @@ _XawTextMBToWC(Display *d, char *str, int *len_in_out)
wstr = wlist[0];
*len_in_out = (int)wcslen(wstr);
XtFree((XtPointer)wlist);
+ XtFree((XtPointer)textprop.value);
return (wstr);
}