src/jdk/nashorn/internal/runtime/arrays/SparseArrayData.java

changeset 334
918a986b0478
parent 219
a6c53280343d
child 368
7276d66b7118
     1.1 --- a/src/jdk/nashorn/internal/runtime/arrays/SparseArrayData.java	Thu Jun 06 21:41:20 2013 +0530
     1.2 +++ b/src/jdk/nashorn/internal/runtime/arrays/SparseArrayData.java	Fri Jun 07 17:44:25 2013 +0200
     1.3 @@ -61,13 +61,15 @@
     1.4  
     1.5      @Override
     1.6      public Object[] asObjectArray() {
     1.7 -        final Object[] objArray = new Object[Math.min((int) length(), Integer.MAX_VALUE)];
     1.8 +        final int length = (int) Math.min(length(), Integer.MAX_VALUE);
     1.9 +        final int underlyingLength = (int) Math.min(length, underlying.length());
    1.10 +        final Object[] objArray = new Object[length];
    1.11  
    1.12 -        for (int i = 0; i < underlying.length(); i++) {
    1.13 +        for (int i = 0; i < underlyingLength; i++) {
    1.14              objArray[i] = underlying.getObject(i);
    1.15          }
    1.16  
    1.17 -        Arrays.fill(objArray, (int) underlying.length(), objArray.length, ScriptRuntime.UNDEFINED);
    1.18 +        Arrays.fill(objArray, underlyingLength, length, ScriptRuntime.UNDEFINED);
    1.19  
    1.20          for (final Map.Entry<Long, Object> entry : sparseMap.entrySet()) {
    1.21              final long key = entry.getKey();

mercurial