You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2013/01/31 01:05:39 UTC

svn commit: r1440739 - /lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/SortedDocValuesWriter.java

Author: mikemccand
Date: Thu Jan 31 00:05:38 2013
New Revision: 1440739

URL: http://svn.apache.org/viewvc?rev=1440739&view=rev
Log:
fix stinky code

Modified:
    lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/SortedDocValuesWriter.java

Modified: lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/SortedDocValuesWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/SortedDocValuesWriter.java?rev=1440739&r1=1440738&r2=1440739&view=diff
==============================================================================
--- lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/SortedDocValuesWriter.java (original)
+++ lucene/dev/branches/lucene4547/lucene/core/src/java/org/apache/lucene/index/SortedDocValuesWriter.java Thu Jan 31 00:05:38 2013
@@ -79,8 +79,7 @@ class SortedDocValuesWriter extends DocV
 
   @Override
   public void finish(int maxDoc) {
-    // nocommit: WTF.. why is this not a while but an if?
-    if (pending.size() < maxDoc) {
+    while(pending.size() < maxDoc) {
       addOneValue(EMPTY);
     }
   }
@@ -112,18 +111,7 @@ class SortedDocValuesWriter extends DocV
     final int maxDoc = state.segmentInfo.getDocCount();
 
     final int emptyOrd;
-    if (pending.size() < maxDoc) {
-      // Make sure we added EMPTY value before sorting:
-      int ord = hash.add(EMPTY);
-      if (ord < 0) {
-        emptyOrd = -ord-1;
-      } else {
-        emptyOrd = ord;
-      }
-    } else {
-      emptyOrd = -1; // nocommit: HUH? how can this possibly work?
-    }
-
+    assert pending.size() == maxDoc;
     final int valueCount = hash.size();
 
     final int[] sortedValues = hash.sort(BytesRef.getUTF8SortedAsUnicodeComparator());
@@ -147,7 +135,7 @@ class SortedDocValuesWriter extends DocV
                               new Iterable<Number>() {
                                 @Override
                                 public Iterator<Number> iterator() {
-                                  return new OrdsIterator(ordMap, maxDoc, emptyOrd);
+                                  return new OrdsIterator(ordMap, maxDoc);
                                 }
                               });
   }
@@ -193,15 +181,13 @@ class SortedDocValuesWriter extends DocV
   private class OrdsIterator implements Iterator<Number> {
     final AppendingLongBuffer.Iterator iter = pending.iterator();
     final int ordMap[];
-    final int size = pending.size();
     final int maxDoc;
-    final int emptyOrd; // nocommit
     int docUpto;
     
-    OrdsIterator(int ordMap[], int maxDoc, int emptyOrd) {
+    OrdsIterator(int ordMap[], int maxDoc) {
       this.ordMap = ordMap;
       this.maxDoc = maxDoc;
-      this.emptyOrd = emptyOrd;
+      assert pending.size() == maxDoc;
     }
     
     @Override
@@ -214,12 +200,7 @@ class SortedDocValuesWriter extends DocV
       if (!hasNext()) {
         throw new NoSuchElementException();
       }
-      int ord;
-      if (docUpto < size) {
-        ord = (int) iter.next();
-      } else {
-        ord = emptyOrd;
-      }
+      int ord = (int) iter.next();
       docUpto++;
       // TODO: make reusable Number
       return ordMap[ord];