Skip to content

Commit

Permalink
Fix passing null pointer to from_raw_parts in SourceRange::tokenize (#58
Browse files Browse the repository at this point in the history
)
  • Loading branch information
madsmtm authored Apr 27, 2024
1 parent 9f79e0a commit b025dfd
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions src/source.rs
Original file line number Diff line number Diff line change
Expand Up @@ -446,9 +446,15 @@ impl<'tu> SourceRange<'tu> {
let (mut raw, mut count) = (mem::MaybeUninit::uninit(), mem::MaybeUninit::uninit());
clang_tokenize(self.tu.ptr, self.raw, raw.as_mut_ptr(), count.as_mut_ptr());
let (raw, count) = (raw.assume_init(), count.assume_init());
let raws = slice::from_raw_parts(raw, count as usize);
let raws = if raw.is_null() {
&[]
} else {
slice::from_raw_parts(raw, count as usize)
};
let tokens = raws.iter().map(|t| Token::from_raw(*t, self.tu)).collect();
clang_disposeTokens(self.tu.ptr, raw, count);
if !raw.is_null() {
clang_disposeTokens(self.tu.ptr, raw, count);
}
tokens
}
}
Expand Down

0 comments on commit b025dfd

Please sign in to comment.