Revision 1066
org.gvsig.raster/trunk/org.gvsig.raster/org.gvsig.raster.lib/org.gvsig.raster.lib.impl/src/main/java/org/gvsig/raster/impl/store/properties/SimpleProviderStatistics.java | ||
---|---|---|
343 | 343 |
initializedBand[iBand] = false; |
344 | 344 |
type[iBand] = provider.getDataType()[iBand]; |
345 | 345 |
} |
346 |
|
|
347 |
Buffer refToBuffer = null; |
|
346 | 348 |
|
347 | 349 |
for (int height = 0; height < provider.getHeight(); height += blockHeight) { |
348 | 350 |
Object buf = null; |
... | ... | |
350 | 352 |
buf = provider.readBlock(height, blockHeight, scale); |
351 | 353 |
if(buf == null) |
352 | 354 |
return; |
353 |
if(buf instanceof Buffer) |
|
355 |
if(buf instanceof Buffer) { |
|
356 |
refToBuffer = (Buffer)buf; //Guardamos la referencia para hacer un dispose al acabar |
|
354 | 357 |
buf = getDataFromBuffer(type, (Buffer)buf); |
358 |
} |
|
355 | 359 |
|
356 | 360 |
switch (type[0]) { |
357 | 361 |
case Buffer.TYPE_BYTE: b = (byte[][][]) buf; break; |
... | ... | |
462 | 466 |
} |
463 | 467 |
percent = ((height * 100) / datasetHeight); |
464 | 468 |
|
465 |
if(buf != null && buf instanceof Buffer) |
|
466 |
((Buffer)buf).dispose(); |
|
469 |
if(refToBuffer != null && refToBuffer instanceof Buffer) |
|
470 |
((Buffer)refToBuffer).dispose(); |
|
471 |
buf = null; |
|
467 | 472 |
} |
468 | 473 |
percent = 100; |
469 | 474 |
|
Also available in: Unified diff