You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by md...@apache.org on 2016/10/19 09:49:52 UTC

svn commit: r1765566 - /jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MutableRecordNumbers.java

Author: mduerig
Date: Wed Oct 19 09:49:52 2016
New Revision: 1765566

URL: http://svn.apache.org/viewvc?rev=1765566&view=rev
Log:
OAK-4953: Optimise MutableRecordNumbers
Proper bounds checking

Modified:
    jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MutableRecordNumbers.java

Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MutableRecordNumbers.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MutableRecordNumbers.java?rev=1765566&r1=1765565&r2=1765566&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MutableRecordNumbers.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/MutableRecordNumbers.java Wed Oct 19 09:49:52 2016
@@ -38,19 +38,22 @@ class MutableRecordNumbers implements Re
 
     @Override
     public int getOffset(int recordNumber) {
-        int recordEntry;
-        recordEntry = recordNumber * 2 >= recordEntries.length
-            ? -1
-            : recordEntries[recordNumber * 2];
+        int recordEntry = getRecordEntry(recordEntries, recordNumber);
 
         if (recordEntry == -1) {
             synchronized (this) {
-                recordEntry = recordEntries[recordNumber * 2];
+                recordEntry = getRecordEntry(recordEntries, recordNumber);
             }
         }
         return recordEntry;
     }
 
+    private static int getRecordEntry(int[] entries, int index) {
+        return index * 2 >= entries.length
+            ? -1
+            : entries[index * 2];
+    }
+
     @Override
     public synchronized Iterator<Entry> iterator() {
         return new AbstractIterator<Entry>() {