Skip to content

Commit dbe795a

Browse files
committed
Convert std::vector to ArrayRef before calling syntax factory method.
1 parent 9896288 commit dbe795a

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

lib/Syntax/SyntaxParsingContext.cpp

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ static Syntax makeUnknownSyntax(SyntaxKind Kind, ArrayRef<Syntax> SubExpr) {
3030
return make<Syntax>(RawSyntax::make(Kind, Layout, SourcePresence::Present));
3131
}
3232

33-
static std::vector<Syntax> getSyntaxNodes(ArrayRef<RawSyntaxInfo> RawNodes) {
34-
std::vector<Syntax> SyntaxParts;
35-
std::transform(RawNodes.begin(), RawNodes.end(), std::back_inserter(SyntaxParts),
33+
static ArrayRef<Syntax> getSyntaxNodes(ArrayRef<RawSyntaxInfo> RawNodes,
34+
std::vector<Syntax> &Scratch) {
35+
std::transform(RawNodes.begin(), RawNodes.end(), std::back_inserter(Scratch),
3636
[](const RawSyntaxInfo &Info) { return Info.makeSyntax<Syntax>(); });
37-
return SyntaxParts;
37+
return Scratch;
3838
}
3939

4040
static unsigned countTokens(ArrayRef<RawSyntaxInfo> AllNodes) {
@@ -157,11 +157,12 @@ SyntaxParsingContext::ContextInfo::collectAllSyntax() {
157157
void
158158
SyntaxParsingContext::ContextInfo::createFromBack(SyntaxKind Kind, unsigned N) {
159159
auto Size = PendingSyntax.size();
160-
assert(Size >= N);
161160
if (!N)
162161
N = Size;
162+
assert(Size >= N);
163163
auto Parts = llvm::makeArrayRef(PendingSyntax).slice(Size - N);
164-
std::vector<Syntax> SyntaxParts = getSyntaxNodes(Parts);
164+
std::vector<Syntax> Scratch;
165+
auto SyntaxParts = getSyntaxNodes(Parts, Scratch);
165166

166167
// Try to create the node of the given syntax.
167168
Optional<Syntax> Result = SyntaxFactory::createSyntax(Kind, SyntaxParts);
@@ -299,7 +300,8 @@ SyntaxParsingContextChild::~SyntaxParsingContextChild() {
299300
return;
300301
}
301302

302-
std::vector<Syntax> SyntaxNodes = getSyntaxNodes(AllNodes);
303+
std::vector<Syntax> Scratch;
304+
auto SyntaxNodes = getSyntaxNodes(AllNodes, Scratch);
303305
SourceLoc Start = AllNodes.front().StartLoc;
304306
unsigned TokCount = countTokens(AllNodes);
305307
SyntaxKind UnknownKind;

0 commit comments

Comments
 (0)