Use TRANSFER_BUFFER for did_exceed_match_limit
This bridges the gap between how the C API reports this for a query cursor, but the wasm API defines the method on a query. Whenever you call a query method that might exceed the match limit, we call the C API function and transfer the result across the wasm boundary, storing the result in the JavaScript wrapper class.
This commit is contained in:
parent
e8eb3c5d5a
commit
b742e88108
3 changed files with 12 additions and 9 deletions
|
|
@ -622,8 +622,11 @@ void ts_query_matches_wasm(
|
|||
}
|
||||
}
|
||||
|
||||
bool did_exceed_match_limit =
|
||||
ts_query_cursor_did_exceed_match_limit(scratch_query_cursor);
|
||||
TRANSFER_BUFFER[0] = (const void *)(match_count);
|
||||
TRANSFER_BUFFER[1] = result.contents;
|
||||
TRANSFER_BUFFER[2] = (const void *)(did_exceed_match_limit);
|
||||
}
|
||||
|
||||
void ts_query_captures_wasm(
|
||||
|
|
@ -667,13 +670,9 @@ void ts_query_captures_wasm(
|
|||
}
|
||||
}
|
||||
|
||||
bool did_exceed_match_limit =
|
||||
ts_query_cursor_did_exceed_match_limit(scratch_query_cursor);
|
||||
TRANSFER_BUFFER[0] = (const void *)(capture_count);
|
||||
TRANSFER_BUFFER[1] = result.contents;
|
||||
}
|
||||
|
||||
bool ts_query_did_exceed_match_limit_wasm(
|
||||
const TSQuery *self
|
||||
) {
|
||||
if (!scratch_query_cursor) return false;
|
||||
return ts_query_cursor_did_exceed_match_limit(scratch_query_cursor);
|
||||
TRANSFER_BUFFER[2] = (const void *)(did_exceed_match_limit);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue