Skip to content

Commit c4f53d3

Browse files
authored
Merge pull request #253 from ahoppen/rawsyntax-trailing-objects-size-assertions
Add assertions verifying that trailing objects of RawSyntax fit inside RawSyntaxDataElement
2 parents 8b16402 + 2e8c2de commit c4f53d3

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

Sources/SwiftSyntax/RawSyntax.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,14 @@ fileprivate struct TokenData {
140140
let trailingTriviaCount = Int(data.trailing_trivia_count)
141141
var curPtr = extraPtr
142142
for i in 0..<leadingTriviaCount {
143+
assert(MemoryLayout.size(ofValue: data.leading_trivia![i])
144+
<= MemoryLayout<RawSyntaxDataElement>.size)
143145
initializeElement(curPtr, with: data.leading_trivia![i])
144146
curPtr = curPtr.successor()
145147
}
146148
for i in 0..<trailingTriviaCount {
149+
assert(MemoryLayout.size(ofValue: data.trailing_trivia![i])
150+
<= MemoryLayout<RawSyntaxDataElement>.size)
147151
initializeElement(curPtr, with: data.trailing_trivia![i])
148152
curPtr = curPtr.successor()
149153
}
@@ -544,6 +548,8 @@ fileprivate struct LayoutData {
544548
) {
545549
var curPtr = extraPtr
546550
for i in 0..<Int(data.nodes_count) {
551+
assert(MemoryLayout.size(ofValue: data.nodes![i])
552+
<= MemoryLayout<RawSyntaxDataElement>.size)
547553
initializeElement(curPtr, with: data.nodes![i])
548554
curPtr = curPtr.successor()
549555
}

0 commit comments

Comments
 (0)