< prev index next >

src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/arrays/DeletedRangeArrayFilter.java

Print this page




  84         if (lo < Integer.MAX_VALUE) {
  85             final int end = (int)Math.min(hi + 1, Integer.MAX_VALUE);
  86             for (int i = (int)lo; i < end; i++) {
  87                 Array.set(value, i, undefValue);
  88             }
  89         }
  90 
  91         return value;
  92     }
  93 
  94     @Override
  95     public ArrayData ensure(final long safeIndex) {
  96         if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH && safeIndex >= length()) {
  97             return new SparseArrayData(this, safeIndex + 1);
  98         }
  99 
 100         return super.ensure(safeIndex);
 101     }
 102 
 103     @Override
 104     public void shiftLeft(final int by) {
 105         super.shiftLeft(by);
 106         lo = Math.max(0, lo - by);
 107         hi = Math.max(-1, hi - by);


 108     }
 109 
 110     @Override
 111     public ArrayData shiftRight(final int by) {
 112         super.shiftRight(by);
 113         final long len = length();
 114         lo = Math.min(len, lo + by);
 115         hi = Math.min(len - 1, hi + by);
 116 
 117         return isEmpty() ? getUnderlying() : this;
 118     }
 119 
 120     @Override
 121     public ArrayData shrink(final long newLength) {
 122         super.shrink(newLength);
 123         lo = Math.min(newLength, lo);
 124         hi = Math.min(newLength - 1, hi);
 125 
 126         return isEmpty() ? getUnderlying() : this;
 127     }




  84         if (lo < Integer.MAX_VALUE) {
  85             final int end = (int)Math.min(hi + 1, Integer.MAX_VALUE);
  86             for (int i = (int)lo; i < end; i++) {
  87                 Array.set(value, i, undefValue);
  88             }
  89         }
  90 
  91         return value;
  92     }
  93 
  94     @Override
  95     public ArrayData ensure(final long safeIndex) {
  96         if (safeIndex >= SparseArrayData.MAX_DENSE_LENGTH && safeIndex >= length()) {
  97             return new SparseArrayData(this, safeIndex + 1);
  98         }
  99 
 100         return super.ensure(safeIndex);
 101     }
 102 
 103     @Override
 104     public ArrayData shiftLeft(final int by) {
 105         super.shiftLeft(by);
 106         lo = Math.max(0, lo - by);
 107         hi = Math.max(-1, hi - by);
 108 
 109         return isEmpty() ? getUnderlying() : this;
 110     }
 111 
 112     @Override
 113     public ArrayData shiftRight(final int by) {
 114         super.shiftRight(by);
 115         final long len = length();
 116         lo = Math.min(len, lo + by);
 117         hi = Math.min(len - 1, hi + by);
 118 
 119         return isEmpty() ? getUnderlying() : this;
 120     }
 121 
 122     @Override
 123     public ArrayData shrink(final long newLength) {
 124         super.shrink(newLength);
 125         lo = Math.min(newLength, lo);
 126         hi = Math.min(newLength - 1, hi);
 127 
 128         return isEmpty() ? getUnderlying() : this;
 129     }


< prev index next >