Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
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
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
4a8492d4
Commit
4a8492d4
authored
May 06, 2020
by
Phillip Webb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Further optimize StringSequence.startsWith
See gh-21259
parent
70ffc709
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
11 deletions
+15
-11
StringSequence.java
...a/org/springframework/boot/loader/jar/StringSequence.java
+1
-11
StringSequenceTests.java
.../springframework/boot/loader/jar/StringSequenceTests.java
+14
-0
No files found.
spring-boot-project/spring-boot-tools/spring-boot-loader/src/main/java/org/springframework/boot/loader/jar/StringSequence.java
View file @
4a8492d4
...
...
@@ -108,17 +108,7 @@ final class StringSequence implements CharSequence {
if
(
length
-
prefixLength
-
offset
<
0
)
{
return
false
;
}
if
(
length
==
this
.
source
.
length
())
{
return
this
.
source
.
startsWith
(
prefix
,
offset
);
}
int
prefixOffset
=
0
;
int
sourceOffset
=
offset
;
while
(
prefixLength
--
!=
0
)
{
if
(
charAt
(
sourceOffset
++)
!=
prefix
.
charAt
(
prefixOffset
++))
{
return
false
;
}
}
return
true
;
return
this
.
source
.
startsWith
(
prefix
,
this
.
start
+
offset
);
}
@Override
...
...
spring-boot-project/spring-boot-tools/spring-boot-loader/src/test/java/org/springframework/boot/loader/jar/StringSequenceTests.java
View file @
4a8492d4
...
...
@@ -203,4 +203,18 @@ class StringSequenceTests {
assertThat
(
new
StringSequence
(
"xab"
).
startsWith
(
"c"
,
1
)).
isFalse
();
}
@Test
void
startsWithOnSubstringTailWhenMatch
()
{
StringSequence
subSequence
=
new
StringSequence
(
"xabc"
).
subSequence
(
1
);
assertThat
(
subSequence
.
startsWith
(
"abc"
)).
isTrue
();
assertThat
(
subSequence
.
startsWith
(
"abcd"
)).
isFalse
();
}
@Test
void
startsWithOnSubstringMiddleWhenMatch
()
{
StringSequence
subSequence
=
new
StringSequence
(
"xabc"
).
subSequence
(
1
,
3
);
assertThat
(
subSequence
.
startsWith
(
"ab"
)).
isTrue
();
assertThat
(
subSequence
.
startsWith
(
"abc"
)).
isFalse
();
}
}
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