Replace CACHE macro with function

This commit is contained in:
David Tolnay 2022-07-22 23:55:37 -07:00
parent 3b233d13a2
commit 76c107d6a5
No known key found for this signature in database
GPG key ID: F9BA143B95FF6D82

View file

@ -20,14 +20,12 @@ use crate::{
use core::mem::{size_of, MaybeUninit};
use core::ptr::{self, addr_of_mut};
macro_rules! CACHE {
($parser:expr, $length:expr) => {
if (*$parser).unread >= $length {
1_i32
} else {
yaml_parser_update_buffer($parser, $length)
}
};
unsafe fn CACHE(parser: *mut yaml_parser_t, length: size_t) -> i32 {
if (*parser).unread >= length {
1_i32
} else {
yaml_parser_update_buffer(parser, length)
}
}
unsafe fn SKIP(parser: *mut yaml_parser_t) {
@ -271,7 +269,7 @@ pub(crate) unsafe fn yaml_parser_fetch_more_tokens(mut parser: *mut yaml_parser_
}
unsafe fn yaml_parser_fetch_next_token(parser: *mut yaml_parser_t) -> libc::c_int {
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
return 0_i32;
}
if (*parser).stream_start_produced == 0 {
@ -286,7 +284,7 @@ unsafe fn yaml_parser_fetch_next_token(parser: *mut yaml_parser_t) -> libc::c_in
if yaml_parser_unroll_indent(parser, (*parser).mark.column as ptrdiff_t) == 0 {
return 0_i32;
}
if CACHE!(parser, 4_u64) == 0 {
if CACHE(parser, 4_u64) == 0 {
return 0_i32;
}
if IS_Z!((*parser).buffer) {
@ -1021,13 +1019,13 @@ unsafe fn yaml_parser_fetch_plain_scalar(mut parser: *mut yaml_parser_t) -> libc
unsafe fn yaml_parser_scan_to_next_token(mut parser: *mut yaml_parser_t) -> libc::c_int {
loop {
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
return 0_i32;
}
if (*parser).mark.column == 0_u64 && IS_BOM!((*parser).buffer) {
SKIP(parser);
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
return 0_i32;
}
while CHECK!((*parser).buffer, b' ')
@ -1035,14 +1033,14 @@ unsafe fn yaml_parser_scan_to_next_token(mut parser: *mut yaml_parser_t) -> libc
&& CHECK!((*parser).buffer, b'\t')
{
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
return 0_i32;
}
}
if CHECK!((*parser).buffer, b'#') {
while !IS_BREAKZ!((*parser).buffer) {
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
return 0_i32;
}
}
@ -1050,7 +1048,7 @@ unsafe fn yaml_parser_scan_to_next_token(mut parser: *mut yaml_parser_t) -> libc
if !IS_BREAK!((*parser).buffer) {
break;
}
if CACHE!(parser, 2_u64) == 0 {
if CACHE(parser, 2_u64) == 0 {
return 0_i32;
}
SKIP_LINE(parser);
@ -1143,14 +1141,14 @@ unsafe fn yaml_parser_scan_directive(
match current_block {
11397968426844348457 => {}
_ => {
if !(CACHE!(parser, 1_u64) == 0) {
if !(CACHE(parser, 1_u64) == 0) {
loop {
if !IS_BLANK!((*parser).buffer) {
current_block = 11584701595673473500;
break;
}
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 11397968426844348457;
break;
}
@ -1165,7 +1163,7 @@ unsafe fn yaml_parser_scan_directive(
break;
}
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 11397968426844348457;
break;
}
@ -1188,7 +1186,7 @@ unsafe fn yaml_parser_scan_directive(
);
} else {
if IS_BREAK!((*parser).buffer) {
if CACHE!(parser, 2_u64) == 0 {
if CACHE(parser, 2_u64) == 0 {
current_block = 11397968426844348457;
} else {
SKIP_LINE(parser);
@ -1227,7 +1225,7 @@ unsafe fn yaml_parser_scan_directive_name(
let current_block: u64;
let mut string = NULL_STRING;
if !(STRING_INIT!(parser, string) == 0) {
if !(CACHE!(parser, 1_u64) == 0) {
if !(CACHE(parser, 1_u64) == 0) {
loop {
if !IS_ALPHA!((*parser).buffer) {
current_block = 10879442775620481940;
@ -1237,7 +1235,7 @@ unsafe fn yaml_parser_scan_directive_name(
current_block = 8318012024179131575;
break;
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 8318012024179131575;
break;
}
@ -1279,12 +1277,12 @@ unsafe fn yaml_parser_scan_version_directive_value(
major: *mut libc::c_int,
minor: *mut libc::c_int,
) -> libc::c_int {
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
return 0_i32;
}
while IS_BLANK!((*parser).buffer) {
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
return 0_i32;
}
}
@ -1315,7 +1313,7 @@ unsafe fn yaml_parser_scan_version_directive_number(
) -> libc::c_int {
let mut value: libc::c_int = 0_i32;
let mut length: size_t = 0_u64;
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
return 0_i32;
}
while IS_DIGIT!((*parser).buffer) {
@ -1330,7 +1328,7 @@ unsafe fn yaml_parser_scan_version_directive_number(
}
value = value * 10_i32 + AS_DIGIT!((*parser).buffer);
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
return 0_i32;
}
}
@ -1355,7 +1353,7 @@ unsafe fn yaml_parser_scan_tag_directive_value(
let mut current_block: u64;
let mut handle_value: *mut yaml_char_t = ptr::null_mut::<yaml_char_t>();
let mut prefix_value: *mut yaml_char_t = ptr::null_mut::<yaml_char_t>();
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 5231181710497607163;
} else {
current_block = 14916268686031723178;
@ -1370,7 +1368,7 @@ unsafe fn yaml_parser_scan_tag_directive_value(
_ => {
if IS_BLANK!((*parser).buffer) {
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 5231181710497607163;
} else {
current_block = 14916268686031723178;
@ -1386,7 +1384,7 @@ unsafe fn yaml_parser_scan_tag_directive_value(
current_block = 5231181710497607163;
continue;
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 5231181710497607163;
continue;
}
@ -1403,7 +1401,7 @@ unsafe fn yaml_parser_scan_tag_directive_value(
} else {
while IS_BLANK!((*parser).buffer) {
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 5231181710497607163;
continue 'c_34337;
}
@ -1420,7 +1418,7 @@ unsafe fn yaml_parser_scan_tag_directive_value(
current_block = 5231181710497607163;
continue;
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 5231181710497607163;
continue;
}
@ -1459,7 +1457,7 @@ unsafe fn yaml_parser_scan_anchor(
if !(STRING_INIT!(parser, string) == 0) {
start_mark = (*parser).mark;
SKIP(parser);
if !(CACHE!(parser, 1_u64) == 0) {
if !(CACHE(parser, 1_u64) == 0) {
loop {
if !IS_ALPHA!((*parser).buffer) {
current_block = 2868539653012386629;
@ -1469,7 +1467,7 @@ unsafe fn yaml_parser_scan_anchor(
current_block = 5883759901342942623;
break;
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 5883759901342942623;
break;
}
@ -1547,7 +1545,7 @@ unsafe fn yaml_parser_scan_tag(
let mut suffix: *mut yaml_char_t = ptr::null_mut::<yaml_char_t>();
let end_mark: yaml_mark_t;
let start_mark: yaml_mark_t = (*parser).mark;
if !(CACHE!(parser, 2_u64) == 0) {
if !(CACHE(parser, 2_u64) == 0) {
if CHECK_AT!((*parser).buffer, b'<', 1) {
handle = yaml_malloc(1_u64) as *mut yaml_char_t;
if handle.is_null() {
@ -1631,7 +1629,7 @@ unsafe fn yaml_parser_scan_tag(
match current_block {
17708497480799081542 => {}
_ => {
if !(CACHE!(parser, 1_u64) == 0) {
if !(CACHE(parser, 1_u64) == 0) {
if !IS_BLANKZ!((*parser).buffer) {
if (*parser).flow_level == 0 || !CHECK!((*parser).buffer, b',') {
yaml_parser_set_scanner_error(
@ -1685,7 +1683,7 @@ unsafe fn yaml_parser_scan_tag_handle(
let mut current_block: u64;
let mut string = NULL_STRING;
if !(STRING_INIT!(parser, string) == 0) {
if !(CACHE!(parser, 1_u64) == 0) {
if !(CACHE(parser, 1_u64) == 0) {
if !CHECK!((*parser).buffer, b'!') {
yaml_parser_set_scanner_error(
parser,
@ -1698,7 +1696,7 @@ unsafe fn yaml_parser_scan_tag_handle(
b"did not find expected '!'\0" as *const u8 as *const libc::c_char,
);
} else if !(READ!(parser, string) == 0) {
if !(CACHE!(parser, 1_u64) == 0) {
if !(CACHE(parser, 1_u64) == 0) {
loop {
if !IS_ALPHA!((*parser).buffer) {
current_block = 7651349459974463963;
@ -1708,7 +1706,7 @@ unsafe fn yaml_parser_scan_tag_handle(
current_block = 1771849829115608806;
break;
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 1771849829115608806;
break;
}
@ -1806,7 +1804,7 @@ unsafe fn yaml_parser_scan_tag_uri(
.pointer
.wrapping_offset(length.wrapping_sub(1_u64) as isize);
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 15265153392498847348;
continue;
}
@ -1853,7 +1851,7 @@ unsafe fn yaml_parser_scan_tag_uri(
continue 'c_21953;
}
length = length.wrapping_add(1);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 15265153392498847348;
continue 'c_21953;
}
@ -1893,7 +1891,7 @@ unsafe fn yaml_parser_scan_uri_escapes(
) -> libc::c_int {
let mut width: libc::c_int = 0_i32;
loop {
if CACHE!(parser, 3_u64) == 0 {
if CACHE(parser, 3_u64) == 0 {
return 0_i32;
}
if !(CHECK!((*parser).buffer, b'%')
@ -1985,7 +1983,7 @@ unsafe fn yaml_parser_scan_block_scalar(
if !(STRING_INIT!(parser, trailing_breaks) == 0) {
start_mark = (*parser).mark;
SKIP(parser);
if !(CACHE!(parser, 1_u64) == 0) {
if !(CACHE(parser, 1_u64) == 0) {
if CHECK!((*parser).buffer, b'+') || CHECK!((*parser).buffer, b'-') {
chomping = if CHECK!((*parser).buffer, b'+') {
1_i32
@ -1993,7 +1991,7 @@ unsafe fn yaml_parser_scan_block_scalar(
-1_i32
};
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 14984465786483313892;
} else if IS_DIGIT!((*parser).buffer) {
if CHECK!((*parser).buffer, b'0') {
@ -2028,7 +2026,7 @@ unsafe fn yaml_parser_scan_block_scalar(
} else {
increment = AS_DIGIT!((*parser).buffer);
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 14984465786483313892;
} else {
if CHECK!((*parser).buffer, b'+') || CHECK!((*parser).buffer, b'-')
@ -2049,14 +2047,14 @@ unsafe fn yaml_parser_scan_block_scalar(
match current_block {
14984465786483313892 => {}
_ => {
if !(CACHE!(parser, 1_u64) == 0) {
if !(CACHE(parser, 1_u64) == 0) {
loop {
if !IS_BLANK!((*parser).buffer) {
current_block = 4090602189656566074;
break;
}
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 14984465786483313892;
break;
}
@ -2071,7 +2069,7 @@ unsafe fn yaml_parser_scan_block_scalar(
break;
}
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 14984465786483313892;
break;
}
@ -2093,7 +2091,7 @@ unsafe fn yaml_parser_scan_block_scalar(
);
} else {
if IS_BREAK!((*parser).buffer) {
if CACHE!(parser, 2_u64) == 0 {
if CACHE(parser, 2_u64) == 0 {
current_block = 14984465786483313892;
} else {
SKIP_LINE(parser);
@ -2122,7 +2120,7 @@ unsafe fn yaml_parser_scan_block_scalar(
addr_of_mut!(end_mark),
) == 0)
{
if !(CACHE!(parser, 1_u64) == 0) {
if !(CACHE(parser, 1_u64) == 0) {
's_281: loop {
if !((*parser).mark.column as libc::c_int == indent
&& !IS_Z!((*parser).buffer))
@ -2163,12 +2161,12 @@ unsafe fn yaml_parser_scan_block_scalar(
current_block = 14984465786483313892;
break 's_281;
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 14984465786483313892;
break 's_281;
}
}
if CACHE!(parser, 2_u64) == 0 {
if CACHE(parser, 2_u64) == 0 {
current_block = 14984465786483313892;
break;
}
@ -2279,14 +2277,14 @@ unsafe fn yaml_parser_scan_block_scalar_breaks(
let mut max_indent: libc::c_int = 0_i32;
*end_mark = (*parser).mark;
loop {
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
return 0_i32;
}
while (*indent == 0 || ((*parser).mark.column as libc::c_int) < *indent)
&& IS_SPACE!((*parser).buffer)
{
SKIP(parser);
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
return 0_i32;
}
}
@ -2307,7 +2305,7 @@ unsafe fn yaml_parser_scan_block_scalar_breaks(
if !IS_BREAK!((*parser).buffer) {
break;
}
if CACHE!(parser, 2_u64) == 0 {
if CACHE(parser, 2_u64) == 0 {
return 0_i32;
}
if READ_LINE!(parser, *breaks) == 0 {
@ -2347,7 +2345,7 @@ unsafe fn yaml_parser_scan_flow_scalar(
start_mark = (*parser).mark;
SKIP(parser);
's_58: loop {
if CACHE!(parser, 4_u64) == 0 {
if CACHE(parser, 4_u64) == 0 {
current_block = 8114179180390253173;
break;
}
@ -2382,7 +2380,7 @@ unsafe fn yaml_parser_scan_flow_scalar(
current_block = 8114179180390253173;
break;
} else {
if CACHE!(parser, 2_u64) == 0 {
if CACHE(parser, 2_u64) == 0 {
current_block = 8114179180390253173;
break;
}
@ -2412,7 +2410,7 @@ unsafe fn yaml_parser_scan_flow_scalar(
&& CHECK!((*parser).buffer, b'\\')
&& IS_BREAK_AT!((*parser).buffer, 1)
{
if CACHE!(parser, 3_u64) == 0 {
if CACHE(parser, 3_u64) == 0 {
current_block = 8114179180390253173;
break 's_58;
}
@ -2559,7 +2557,7 @@ unsafe fn yaml_parser_scan_flow_scalar(
if code_length != 0 {
let mut value: libc::c_uint = 0_u32;
let mut k: size_t;
if CACHE!(parser, code_length) == 0 {
if CACHE(parser, code_length) == 0 {
current_block = 8114179180390253173;
break 's_58;
}
@ -2692,12 +2690,12 @@ unsafe fn yaml_parser_scan_flow_scalar(
break 's_58;
}
}
if CACHE!(parser, 2_u64) == 0 {
if CACHE(parser, 2_u64) == 0 {
current_block = 8114179180390253173;
break 's_58;
}
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 8114179180390253173;
break;
}
@ -2705,7 +2703,7 @@ unsafe fn yaml_parser_scan_flow_scalar(
current_block = 7468767852762055642;
break;
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 8114179180390253173;
break;
}
@ -2720,7 +2718,7 @@ unsafe fn yaml_parser_scan_flow_scalar(
SKIP(parser);
}
} else {
if CACHE!(parser, 2_u64) == 0 {
if CACHE(parser, 2_u64) == 0 {
current_block = 8114179180390253173;
break 's_58;
}
@ -2736,7 +2734,7 @@ unsafe fn yaml_parser_scan_flow_scalar(
break 's_58;
}
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 8114179180390253173;
break 's_58;
}
@ -2840,7 +2838,7 @@ unsafe fn yaml_parser_scan_plain_scalar(
end_mark = (*parser).mark;
start_mark = end_mark;
's_57: loop {
if CACHE!(parser, 4_u64) == 0 {
if CACHE(parser, 4_u64) == 0 {
current_block = 16642808987012640029;
break;
}
@ -2937,7 +2935,7 @@ unsafe fn yaml_parser_scan_plain_scalar(
break 's_57;
}
end_mark = (*parser).mark;
if CACHE!(parser, 2_u64) == 0 {
if CACHE(parser, 2_u64) == 0 {
current_block = 16642808987012640029;
break 's_57;
}
@ -2947,7 +2945,7 @@ unsafe fn yaml_parser_scan_plain_scalar(
current_block = 6281126495347172768;
break;
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 16642808987012640029;
break;
}
@ -2977,7 +2975,7 @@ unsafe fn yaml_parser_scan_plain_scalar(
SKIP(parser);
}
} else {
if CACHE!(parser, 2_u64) == 0 {
if CACHE(parser, 2_u64) == 0 {
current_block = 16642808987012640029;
break 's_57;
}
@ -2993,7 +2991,7 @@ unsafe fn yaml_parser_scan_plain_scalar(
break 's_57;
}
}
if CACHE!(parser, 1_u64) == 0 {
if CACHE(parser, 1_u64) == 0 {
current_block = 16642808987012640029;
break 's_57;
}