mirror of https://github.com/apache/lucene.git
- Fixed clear() method that wasn't setting the very last heap element to null,
as reported at http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9454. PR: 9454 Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/lucene/java/trunk@149767 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
abefb1b48e
commit
a7bd647dd6
|
@ -72,9 +72,9 @@ public abstract class PriorityQueue {
|
||||||
heap = new Object[heapSize];
|
heap = new Object[heapSize];
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Adds an Object to a PriorityQueue in log(size) time. */
|
/** Adds an Object to a PriorityQueue in log(size) time. */
|
||||||
public final void put(Object element) {
|
public final void put(Object element) {
|
||||||
size++;
|
size++;
|
||||||
heap[size] = element;
|
heap[size] = element;
|
||||||
upHeap();
|
upHeap();
|
||||||
}
|
}
|
||||||
|
@ -88,7 +88,7 @@ public abstract class PriorityQueue {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Removes and returns the least element of the PriorityQueue in log(size)
|
/** Removes and returns the least element of the PriorityQueue in log(size)
|
||||||
time. */
|
time. */
|
||||||
public final Object pop() {
|
public final Object pop() {
|
||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
Object result = heap[1]; // save first value
|
Object result = heap[1]; // save first value
|
||||||
|
@ -111,16 +111,16 @@ public abstract class PriorityQueue {
|
||||||
public final void adjustTop() {
|
public final void adjustTop() {
|
||||||
downHeap();
|
downHeap();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Returns the number of elements currently stored in the PriorityQueue. */
|
/** Returns the number of elements currently stored in the PriorityQueue. */
|
||||||
public final int size() {
|
public final int size() {
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Removes all entries from the PriorityQueue. */
|
/** Removes all entries from the PriorityQueue. */
|
||||||
public final void clear() {
|
public final void clear() {
|
||||||
for (int i = 0; i < size; i++)
|
for (int i = 0; i <= size; i++)
|
||||||
heap[i] = null;
|
heap[i] = null;
|
||||||
size = 0;
|
size = 0;
|
||||||
}
|
}
|
||||||
|
@ -136,7 +136,7 @@ public abstract class PriorityQueue {
|
||||||
}
|
}
|
||||||
heap[i] = node; // install saved node
|
heap[i] = node; // install saved node
|
||||||
}
|
}
|
||||||
|
|
||||||
private final void downHeap() {
|
private final void downHeap() {
|
||||||
int i = 1;
|
int i = 1;
|
||||||
Object node = heap[i]; // save top node
|
Object node = heap[i]; // save top node
|
||||||
|
|
Loading…
Reference in New Issue