Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libvmod-re2
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uplex-varnish
libvmod-re2
Commits
2e4bcc3d
Commit
2e4bcc3d
authored
Oct 17, 2017
by
Geoff Simmons
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
set.matched() runs a binary search.
parent
b20a6ee2
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
4 deletions
+13
-4
vmod_re2.c
src/vmod_re2.c
+13
-4
No files found.
src/vmod_re2.c
View file @
2e4bcc3d
...
...
@@ -768,7 +768,7 @@ VCL_BOOL
vmod_set_matched
(
VRT_CTX
,
struct
vmod_re2_set
*
set
,
VCL_INT
n
)
{
struct
task_set_match
*
task
;
unsigned
i
;
int
hi
,
lo
=
0
;
CHECK_OBJ_NOTNULL
(
ctx
,
VRT_CTX_MAGIC
);
CHECK_OBJ_NOTNULL
(
set
,
VMOD_RE2_SET_MAGIC
);
...
...
@@ -789,9 +789,18 @@ vmod_set_matched(VRT_CTX, struct vmod_re2_set *set, VCL_INT n)
WS_Assert_Allocated
(
ctx
->
ws
,
task
->
matches
,
task
->
nmatches
*
sizeof
(
int
));
n
--
;
for
(
i
=
0
;
i
<
task
->
nmatches
&&
task
->
matches
[
i
]
<
n
;
i
++
)
;
return
task
->
matches
[
i
]
==
n
;
hi
=
task
->
nmatches
;
do
{
int
m
=
lo
+
(
hi
-
lo
)
/
2
;
if
(
task
->
matches
[
m
]
==
n
)
return
1
;
if
(
task
->
matches
[
m
]
<
n
)
lo
=
m
+
1
;
else
hi
=
m
-
1
;
}
while
(
lo
<=
hi
);
return
0
;
}
VCL_INT
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment