You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2017/01/19 10:30:32 UTC
[1/2] lucene-solr:master: LUCENE-7645: Use JDK's Arrays.binarySearch
in BaseCharFilter.
Repository: lucene-solr
Updated Branches:
refs/heads/branch_6x 91b8eef3f -> 5c5a6db45
refs/heads/master 85a05b546 -> a14d79366
LUCENE-7645: Use JDK's Arrays.binarySearch in BaseCharFilter.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/a14d7936
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/a14d7936
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/a14d7936
Branch: refs/heads/master
Commit: a14d79366f97ffde61b56aee2e2d9123ccadc8a7
Parents: 85a05b5
Author: Adrien Grand <jp...@gmail.com>
Authored: Thu Jan 19 11:27:24 2017 +0100
Committer: Adrien Grand <jp...@gmail.com>
Committed: Thu Jan 19 11:27:24 2017 +0100
----------------------------------------------------------------------
.../analysis/charfilter/BaseCharFilter.java | 26 +++++---------------
1 file changed, 6 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a14d7936/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/BaseCharFilter.java
----------------------------------------------------------------------
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/BaseCharFilter.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/BaseCharFilter.java
index 48ffa48..4fba9fe 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/BaseCharFilter.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/BaseCharFilter.java
@@ -41,31 +41,17 @@ public abstract class BaseCharFilter extends CharFilter {
/** Retrieve the corrected offset. */
@Override
protected int correct(int currentOff) {
- if (offsets == null || currentOff < offsets[0]) {
+ if (offsets == null) {
return currentOff;
}
-
- int hi = size - 1;
- if(currentOff >= offsets[hi])
- return currentOff + diffs[hi];
- int lo = 0;
- int mid = -1;
-
- while (hi >= lo) {
- mid = (lo + hi) >>> 1;
- if (currentOff < offsets[mid])
- hi = mid - 1;
- else if (currentOff > offsets[mid])
- lo = mid + 1;
- else
- return currentOff + diffs[mid];
+ int index = Arrays.binarySearch(offsets, 0, size, currentOff);
+ if (index < -1) {
+ index = -2 - index;
}
- if (currentOff < offsets[mid])
- return mid == 0 ? currentOff : currentOff + diffs[mid-1];
- else
- return currentOff + diffs[mid];
+ final int diff = index < 0 ? 0 : diffs[index];
+ return currentOff + diff;
}
protected int getLastCumulativeDiff() {
[2/2] lucene-solr:branch_6x: LUCENE-7645: Use JDK's
Arrays.binarySearch in BaseCharFilter.
Posted by jp...@apache.org.
LUCENE-7645: Use JDK's Arrays.binarySearch in BaseCharFilter.
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/5c5a6db4
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/5c5a6db4
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/5c5a6db4
Branch: refs/heads/branch_6x
Commit: 5c5a6db4590564c427ef080d662db1d971808bff
Parents: 91b8eef
Author: Adrien Grand <jp...@gmail.com>
Authored: Thu Jan 19 11:27:24 2017 +0100
Committer: Adrien Grand <jp...@gmail.com>
Committed: Thu Jan 19 11:28:06 2017 +0100
----------------------------------------------------------------------
.../analysis/charfilter/BaseCharFilter.java | 26 +++++---------------
1 file changed, 6 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5c5a6db4/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/BaseCharFilter.java
----------------------------------------------------------------------
diff --git a/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/BaseCharFilter.java b/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/BaseCharFilter.java
index 48ffa48..4fba9fe 100644
--- a/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/BaseCharFilter.java
+++ b/lucene/analysis/common/src/java/org/apache/lucene/analysis/charfilter/BaseCharFilter.java
@@ -41,31 +41,17 @@ public abstract class BaseCharFilter extends CharFilter {
/** Retrieve the corrected offset. */
@Override
protected int correct(int currentOff) {
- if (offsets == null || currentOff < offsets[0]) {
+ if (offsets == null) {
return currentOff;
}
-
- int hi = size - 1;
- if(currentOff >= offsets[hi])
- return currentOff + diffs[hi];
- int lo = 0;
- int mid = -1;
-
- while (hi >= lo) {
- mid = (lo + hi) >>> 1;
- if (currentOff < offsets[mid])
- hi = mid - 1;
- else if (currentOff > offsets[mid])
- lo = mid + 1;
- else
- return currentOff + diffs[mid];
+ int index = Arrays.binarySearch(offsets, 0, size, currentOff);
+ if (index < -1) {
+ index = -2 - index;
}
- if (currentOff < offsets[mid])
- return mid == 0 ? currentOff : currentOff + diffs[mid-1];
- else
- return currentOff + diffs[mid];
+ final int diff = index < 0 ? 0 : diffs[index];
+ return currentOff + diff;
}
protected int getLastCumulativeDiff() {