Verify changed ranges in randomized tests
This commit is contained in:
parent
233d616ebf
commit
5a12fbd927
7 changed files with 146 additions and 12 deletions
17
lib/binding/helper.c
Normal file
17
lib/binding/helper.c
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#if defined(TREE_SITTER_TEST)
|
||||
|
||||
void ts_record_free(void *);
|
||||
|
||||
void rust_tree_sitter_free(void *p) {
|
||||
ts_record_free(p);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
void free(void *);
|
||||
|
||||
void rust_tree_sitter_free(void *p) {
|
||||
free(p);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
@ -436,7 +436,7 @@ impl Tree {
|
|||
ffi::ts_tree_get_changed_ranges(self.0, other.0, &mut count as *mut _ as *mut u32);
|
||||
let ranges = slice::from_raw_parts(ptr, count);
|
||||
let result = ranges.into_iter().map(|r| r.clone().into()).collect();
|
||||
free(ptr as *mut c_void);
|
||||
free_ptr(ptr as *mut c_void);
|
||||
result
|
||||
}
|
||||
}
|
||||
|
|
@ -576,7 +576,7 @@ impl<'tree> Node<'tree> {
|
|||
.to_str()
|
||||
.unwrap()
|
||||
.to_string();
|
||||
unsafe { free(c_string as *mut c_void) };
|
||||
unsafe { free_ptr(c_string as *mut c_void) };
|
||||
result
|
||||
}
|
||||
|
||||
|
|
@ -882,5 +882,6 @@ impl<P> PropertySheet<P> {
|
|||
}
|
||||
|
||||
extern "C" {
|
||||
fn free(pointer: *mut c_void);
|
||||
#[link_name = "rust_tree_sitter_free"]
|
||||
fn free_ptr(ptr: *mut c_void);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue