fix(rust): fix progress callback scope to prevent premature drop
This commit is contained in:
parent
02ff0af69c
commit
e892862c6c
1 changed files with 16 additions and 8 deletions
|
|
@ -803,10 +803,12 @@ impl Parser {
|
|||
progress_callback: None,
|
||||
};
|
||||
|
||||
let mut callback_ptr;
|
||||
let parse_options = if let Some(options) = options {
|
||||
if let Some(mut cb) = options.progress_callback {
|
||||
if let Some(cb) = options.progress_callback {
|
||||
callback_ptr = cb;
|
||||
ffi::TSParseOptions {
|
||||
payload: core::ptr::addr_of_mut!(cb).cast::<c_void>(),
|
||||
payload: core::ptr::addr_of_mut!(callback_ptr).cast::<c_void>(),
|
||||
progress_callback: Some(progress),
|
||||
}
|
||||
} else {
|
||||
|
|
@ -939,10 +941,12 @@ impl Parser {
|
|||
progress_callback: None,
|
||||
};
|
||||
|
||||
let mut callback_ptr;
|
||||
let parse_options = if let Some(options) = options {
|
||||
if let Some(mut cb) = options.progress_callback {
|
||||
if let Some(cb) = options.progress_callback {
|
||||
callback_ptr = cb;
|
||||
ffi::TSParseOptions {
|
||||
payload: core::ptr::addr_of_mut!(cb).cast::<c_void>(),
|
||||
payload: core::ptr::addr_of_mut!(callback_ptr).cast::<c_void>(),
|
||||
progress_callback: Some(progress),
|
||||
}
|
||||
} else {
|
||||
|
|
@ -1054,10 +1058,12 @@ impl Parser {
|
|||
progress_callback: None,
|
||||
};
|
||||
|
||||
let mut callback_ptr;
|
||||
let parse_options = if let Some(options) = options {
|
||||
if let Some(mut cb) = options.progress_callback {
|
||||
if let Some(cb) = options.progress_callback {
|
||||
callback_ptr = cb;
|
||||
ffi::TSParseOptions {
|
||||
payload: core::ptr::addr_of_mut!(cb).cast::<c_void>(),
|
||||
payload: core::ptr::addr_of_mut!(callback_ptr).cast::<c_void>(),
|
||||
progress_callback: Some(progress),
|
||||
}
|
||||
} else {
|
||||
|
|
@ -1159,10 +1165,12 @@ impl Parser {
|
|||
progress_callback: None,
|
||||
};
|
||||
|
||||
let mut callback_ptr;
|
||||
let parse_options = if let Some(options) = options {
|
||||
if let Some(mut cb) = options.progress_callback {
|
||||
if let Some(cb) = options.progress_callback {
|
||||
callback_ptr = cb;
|
||||
ffi::TSParseOptions {
|
||||
payload: core::ptr::addr_of_mut!(cb).cast::<c_void>(),
|
||||
payload: core::ptr::addr_of_mut!(callback_ptr).cast::<c_void>(),
|
||||
progress_callback: Some(progress),
|
||||
}
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue