diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-08-17 02:41:21 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-08-17 02:44:09 +0900 |
| commit | fcc6ee5a13cd2e2b27fff66dcfc7e9e1f062a653 (patch) | |
| tree | a7966f53ae9f96ee583cb4105cf882fd137e1a1b /crates/shirabe-php-shim | |
| parent | 089215c1c26b4b09f697e3711416cbed0c53b0d3 (diff) | |
| download | php-shirabe-fcc6ee5a13cd2e2b27fff66dcfc7e9e1f062a653.tar.gz php-shirabe-fcc6ee5a13cd2e2b27fff66dcfc7e9e1f062a653.tar.zst php-shirabe-fcc6ee5a13cd2e2b27fff66dcfc7e9e1f062a653.zip | |
refactor(preg): drop unused args of preg_match_all_offset_capture2()
The sole caller, Preg::match_all_with_offsets5(), always passed flags=0
and offset=0, so PREG_UNMATCHED_AS_NULL is now unconditional and the
subject is scanned from the beginning. That method is only reached from
Preg::match_all_with_offsets(), so it is no longer public either.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe-php-shim')
| -rw-r--r-- | crates/shirabe-php-shim/src/preg.rs | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/crates/shirabe-php-shim/src/preg.rs b/crates/shirabe-php-shim/src/preg.rs index 42a3ecec..40eb25fb 100644 --- a/crates/shirabe-php-shim/src/preg.rs +++ b/crates/shirabe-php-shim/src/preg.rs @@ -200,24 +200,20 @@ pub fn preg_match_all_offset_capture2( pattern: impl PregPattern, subject: &str, matches: &mut indexmap::IndexMap<CaptureKey, Vec<(Option<String>, i64)>>, - flags: i64, - offset: usize, ) -> usize { let __resolved = pattern.resolve(); let (re, _anchored) = __resolved.parts(); - let unmatched_as_null = flags & PREG_UNMATCHED_AS_NULL != 0; let group_count = re.captures_len(); let names: Vec<Option<&str>> = re.capture_names().collect(); let mut groups: Vec<Vec<(Option<String>, i64)>> = vec![Vec::new(); group_count]; let mut count = 0; - for caps in re.captures_iter(&subject[offset..]) { + for caps in re.captures_iter(subject) { count += 1; for (g, column) in groups.iter_mut().enumerate() { let entry = match caps.get(g) { - Some(m) => (Some(m.as_str().to_string()), (m.start() + offset) as i64), - None if unmatched_as_null => (None, -1), - None => (Some(String::new()), -1), + Some(m) => (Some(m.as_str().to_string()), m.start() as i64), + None => (None, -1), }; column.push(entry); } |
