[cvs] / jsr166 / src / main / java / util / PriorityQueue.java Repository:
ViewVC logotype

Diff of /jsr166/src/main/java/util/PriorityQueue.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.31, Mon Aug 25 19:27:54 2003 UTC revision 1.32, Mon Aug 25 23:47:01 2003 UTC
# Line 431  Line 431 
431              checkForComodification();              checkForComodification();
432    
433              PriorityQueue.this.remove(lastRet);              PriorityQueue.this.remove(lastRet);
             if (lastRet < cursor)  
434                  cursor--;                  cursor--;
435              lastRet = 0;              lastRet = 0;
436              expectedModCount = modCount;              expectedModCount = modCount;
# Line 464  Line 463 
463       * Removes and returns the ith element from queue.  Recall       * Removes and returns the ith element from queue.  Recall
464       * that queue is one-based, so 1 <= i <= size.       * that queue is one-based, so 1 <= i <= size.
465       *       *
      * XXX: Could further special-case i==size, but is it worth it?  
      * XXX: Could special-case i==0, but is it worth it?  
466       */       */
467      private E remove(int i) {      private E remove(int i) {
468          assert i <= size;          assert i <= size;
# Line 520  Line 517 
517      private void fixDown(int k) {      private void fixDown(int k) {
518          int j;          int j;
519          if (comparator == null) {          if (comparator == null) {
520              while ((j = k << 1) <= size) {              while ((j = k << 1) <= size && j > 0) {
521                  if (j<size && ((Comparable<E>)queue[j]).compareTo((E)queue[j+1]) > 0)                  if (j<size && ((Comparable<E>)queue[j]).compareTo((E)queue[j+1]) > 0)
522                      j++; // j indexes smallest kid                      j++; // j indexes smallest kid
523                  if (((Comparable<E>)queue[k]).compareTo((E)queue[j]) <= 0)                  if (((Comparable<E>)queue[k]).compareTo((E)queue[j]) <= 0)
# Line 529  Line 526 
526                  k = j;                  k = j;
527              }              }
528          } else {          } else {
529              while ((j = k << 1) <= size) {              while ((j = k << 1) <= size && j > 0) {
530                  if (j < size && comparator.compare((E)queue[j], (E)queue[j+1]) > 0)                  if (j < size && comparator.compare((E)queue[j], (E)queue[j+1]) > 0)
531                      j++; // j indexes smallest kid                      j++; // j indexes smallest kid
532                  if (comparator.compare((E)queue[k], (E)queue[j]) <= 0)                  if (comparator.compare((E)queue[k], (E)queue[j]) <= 0)

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.32

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8