diff --git a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/SearchResult.java b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/SearchResult.java
index 37eb600..2da1434 100644
--- a/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/SearchResult.java
+++ b/hyracks-fullstack/hyracks/hyracks-storage-am-lsm-invertedindex/src/main/java/org/apache/hyracks/storage/am/lsm/invertedindex/search/SearchResult.java
@@ -143,47 +143,4 @@
         return numResults;
     }
 
-    // TODO: This code may help to clean up the core list-merging algorithms.
-    /*
-    public SearchResultCursor getCursor() {
-        cursor.reset();
-        return cursor;
-    }
-
-    public class SearchResultCursor {
-        private int bufferIndex;
-        private int resultIndex;
-        private int frameResultIndex;
-        private ByteBuffer currentBuffer;
-
-        public void reset() {
-            bufferIndex = 0;
-            resultIndex = 0;
-            frameResultIndex = 0;
-            currentBuffer = buffers.get(0);
-            resultFrameTupleAcc.reset(currentBuffer);
-        }
-
-        public boolean hasNext() {
-            return resultIndex < numResults;
-        }
-
-        public void next() {
-            resultTuple.reset(currentBuffer.array(), resultFrameTupleAcc.getTupleStartOffset(frameResultIndex));
-            if (frameResultIndex < resultFrameTupleAcc.getTupleCount()) {
-                frameResultIndex++;
-            } else {
-                bufferIndex++;
-                currentBuffer = buffers.get(bufferIndex);
-                resultFrameTupleAcc.reset(currentBuffer);
-                frameResultIndex = 0;
-            }
-            resultIndex++;
-        }
-
-        public ITupleReference getTuple() {
-            return resultTuple;
-        }
-    }
-    */
 }
diff --git a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/MathUtil.java b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/MathUtil.java
index 2b157e4..2581934 100644
--- a/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/MathUtil.java
+++ b/hyracks-fullstack/hyracks/hyracks-util/src/main/java/org/apache/hyracks/util/MathUtil.java
@@ -20,6 +20,10 @@
 package org.apache.hyracks.util;
 
 public class MathUtil {
+
+    private MathUtil() {
+    }
+
     /**
      * Fast way to calculate the log2(x). Note: x should be >= 1.
      *
@@ -44,7 +48,7 @@
             log |= 4;
         }
 
-        if (n > 0b11) {
+        if (n > 3) {
             n >>>= 2;
             log |= 2;
         }
