Skip to content

Commit 64185c7

Browse files
committed
[SourceKit] Fix leak in 'CodeCompleteSetCustom' request.
rdar://23769190
1 parent bc21bbe commit 64185c7

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

tools/SourceKit/tools/sourcekitd/lib/API/Requests.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -563,8 +563,7 @@ void handleRequestImpl(sourcekitd_object_t ReqObj, ResponseReceiver Rec) {
563563

564564
if (ReqUID == RequestCodeCompleteSetCustom) {
565565
SmallVector<CustomCompletionInfo, 16> customCompletions;
566-
sourcekitd_response_t err =
567-
createErrorRequestInvalid("missing 'key.results'");
566+
sourcekitd_response_t err = nullptr;
568567
bool failed = Req.dictionaryArrayApply(KeyResults, [&](RequestDict dict) {
569568
CustomCompletionInfo CCInfo;
570569
Optional<StringRef> Name = dict.getString(KeyName);
@@ -604,8 +603,11 @@ void handleRequestImpl(sourcekitd_object_t ReqObj, ResponseReceiver Rec) {
604603
return false;
605604
});
606605

607-
if (failed)
606+
if (failed) {
607+
if (!err)
608+
err = createErrorRequestInvalid("missing 'key.results'");
608609
return Rec(err);
610+
}
609611

610612
LangSupport &Lang = getGlobalContext().getSwiftLangSupport();
611613
Lang.codeCompleteSetCustom(customCompletions);

0 commit comments

Comments
 (0)