Make ts_language_symbol_name return NULL for out-of-bound ids
This commit is contained in:
parent
c719e24a45
commit
23261c4f6f
2 changed files with 10 additions and 5 deletions
|
|
@ -176,10 +176,13 @@ impl Language {
|
|||
}
|
||||
|
||||
/// Get the name of the node kind for the given numerical id.
|
||||
pub fn node_kind_for_id(&self, id: u16) -> &'static str {
|
||||
unsafe { CStr::from_ptr(ffi::ts_language_symbol_name(self.0, id)) }
|
||||
.to_str()
|
||||
.unwrap()
|
||||
pub fn node_kind_for_id(&self, id: u16) -> Option<&'static str> {
|
||||
let ptr = unsafe { ffi::ts_language_symbol_name(self.0, id) };
|
||||
if ptr.is_null() {
|
||||
None
|
||||
} else {
|
||||
Some(unsafe { CStr::from_ptr(ptr) }.to_str().unwrap())
|
||||
}
|
||||
}
|
||||
|
||||
/// Get the numeric id for the given node kind.
|
||||
|
|
|
|||
|
|
@ -72,8 +72,10 @@ const char *ts_language_symbol_name(
|
|||
return "ERROR";
|
||||
} else if (symbol == ts_builtin_sym_error_repeat) {
|
||||
return "_ERROR";
|
||||
} else {
|
||||
} else if (symbol < ts_language_symbol_count(self)) {
|
||||
return self->symbol_names[symbol];
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue