diff options
-rw-r--r-- | src/MultiSrc.c | 6 | ||||
-rw-r--r-- | src/TextSrc.c | 2 |
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); } |