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]

Reply via email to