ramc 01/03/15 09:04:37
Modified: src/java/org/apache/avalon/util BinaryHeap.java
Log:
Minor bug fix. use the correct size while checking if the Heap is full. Also,
removed the reference of pop'ed objects.
Revision Changes Path
1.2 +7 -1 jakarta-avalon/src/java/org/apache/avalon/util/BinaryHeap.java
Index: BinaryHeap.java
===================================================================
RCS file: /home/cvs/jakarta-avalon/src/java/org/apache/avalon/util/BinaryHeap.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- BinaryHeap.java 2001/02/24 03:59:37 1.1
+++ BinaryHeap.java 2001/03/15 17:04:32 1.2
@@ -14,6 +14,7 @@
* This interface does not dictate whether it is min or max heap.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
+ * @author <a href="mailto:[EMAIL PROTECTED]">Ram Chidambaram</a>
*/
public final class BinaryHeap
implements PriorityQueue
@@ -72,7 +73,8 @@
*/
public boolean isFull()
{
- return ( m_elements.length == m_size );
+ //+1 as element 0 is noop
+ return ( m_elements.length == m_size+1 );
}
/**
@@ -111,6 +113,10 @@
{
final Comparable result = peek();
m_elements[ 1 ] = m_elements[ m_size-- ];
+
+ //set the unused element to 'null' so that the garbage collector
+ //can free the object if not used anywhere else.(remove reference)
+ m_elements[ m_size + 1 ] = null;
if( m_size != 0 )
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]