public ByteBuffer next() { if(nextBlock == POIFSConstants.END_OF_CHAIN) { throw new IndexOutOfBoundsException("Can't read past the end of the stream"); } try { loopDetector.claim(nextBlock); ByteBuffer data = blockStore.getBlockAt(nextBlock); nextBlock = blockStore.getNextBlock(nextBlock); return data; } catch(IOException e) { throw new RuntimeException(e); } }
private void readBAT(int batAt, ChainLoopDetector loopDetector) throws IOException { loopDetector.claim(batAt); ByteBuffer fatData = getBlockAt(batAt); BATBlock bat = BATBlock.createBATBlock(bigBlockSize, fatData); bat.setOurBlockIndex(batAt); _bat_blocks.add(bat); } private BATBlock createBAT(int offset, boolean isBAT) throws IOException {
int block = _mini_stream.getStartBlock(); while(true) { loopDetector.claim(block); int next = _filesystem.getNextBlock(block); if(next == POIFSConstants.END_OF_CHAIN) {
int block = _mini_stream.getStartBlock(); while(true) { loopDetector.claim(block); int next = _filesystem.getNextBlock(block); if(next == POIFSConstants.END_OF_CHAIN) {
int block = _mini_stream.getStartBlock(); while(true) { loopDetector.claim(block); int next = _filesystem.getNextBlock(block); if(next == POIFSConstants.END_OF_CHAIN) {
public ByteBuffer next() { if(nextBlock == POIFSConstants.END_OF_CHAIN) { throw new IndexOutOfBoundsException("Can't read past the end of the stream"); } try { loopDetector.claim(nextBlock); ByteBuffer data = blockStore.getBlockAt(nextBlock); nextBlock = blockStore.getNextBlock(nextBlock); return data; } catch(IOException e) { throw new RuntimeException(e); } }
public ByteBuffer next() { if(nextBlock == POIFSConstants.END_OF_CHAIN) { throw new IndexOutOfBoundsException("Can't read past the end of the stream"); } try { loopDetector.claim(nextBlock); ByteBuffer data = blockStore.getBlockAt(nextBlock); nextBlock = blockStore.getNextBlock(nextBlock); return data; } catch(IOException e) { throw new RuntimeException(e); } }
private void free(ChainLoopDetector loopDetector) { int nextBlock = startBlock; while(nextBlock != POIFSConstants.END_OF_CHAIN) { int thisBlock = nextBlock; loopDetector.claim(thisBlock); nextBlock = blockStore.getNextBlock(thisBlock); blockStore.setNextBlock(thisBlock, POIFSConstants.UNUSED_BLOCK); } this.startBlock = POIFSConstants.END_OF_CHAIN; }
private void free(ChainLoopDetector loopDetector) { int nextBlock = startBlock; while(nextBlock != POIFSConstants.END_OF_CHAIN) { int thisBlock = nextBlock; loopDetector.claim(thisBlock); nextBlock = blockStore.getNextBlock(thisBlock); blockStore.setNextBlock(thisBlock, POIFSConstants.UNUSED_BLOCK); } this.startBlock = POIFSConstants.END_OF_CHAIN; }
public ByteBuffer next() { if(nextBlock == POIFSConstants.END_OF_CHAIN) { throw new IndexOutOfBoundsException("Can't read past the end of the stream"); } try { loopDetector.claim(nextBlock); ByteBuffer data = blockStore.getBlockAt(nextBlock); nextBlock = blockStore.getNextBlock(nextBlock); return data; } catch(IOException e) { throw new RuntimeException(e); } }
private void readBAT(int batAt, ChainLoopDetector loopDetector) throws IOException { loopDetector.claim(batAt); ByteBuffer fatData = getBlockAt(batAt); BATBlock bat = BATBlock.createBATBlock(bigBlockSize, fatData); bat.setOurBlockIndex(batAt); _bat_blocks.add(bat); } private BATBlock createBAT(int offset, boolean isBAT) throws IOException {
private void free(ChainLoopDetector loopDetector) { int nextBlock = startBlock; while(nextBlock != POIFSConstants.END_OF_CHAIN) { int thisBlock = nextBlock; loopDetector.claim(thisBlock); nextBlock = blockStore.getNextBlock(thisBlock); blockStore.setNextBlock(thisBlock, POIFSConstants.UNUSED_BLOCK); } this.startBlock = POIFSConstants.END_OF_CHAIN; }
private void readBAT(int batAt, ChainLoopDetector loopDetector) throws IOException { loopDetector.claim(batAt); ByteBuffer fatData = getBlockAt(batAt); BATBlock bat = BATBlock.createBATBlock(bigBlockSize, fatData); bat.setOurBlockIndex(batAt); _bat_blocks.add(bat); } private BATBlock createBAT(int offset, boolean isBAT) throws IOException {
private void readBAT(int batAt, ChainLoopDetector loopDetector) throws IOException { loopDetector.claim(batAt); ByteBuffer fatData = getBlockAt(batAt); BATBlock bat = BATBlock.createBATBlock(bigBlockSize, fatData); bat.setOurBlockIndex(batAt); _bat_blocks.add(bat); } private BATBlock createBAT(int offset, boolean isBAT) throws IOException {
int batOffset = _header.getSBATStart(); while(true) { loopDetector.claim(batOffset); int nextBat = _filesystem.getNextBlock(batOffset); if(nextBat == POIFSConstants.END_OF_CHAIN) {
int nextAt = _header.getXBATIndex(); for(int i=0; i<_header.getXBATCount(); i++) { loopDetector.claim(nextAt); ByteBuffer fatData = getBlockAt(nextAt); xfat = BATBlock.createBATBlock(bigBlockSize, fatData); nextAt = _header.getSBATStart(); for(int i=0; i<_header.getSBATCount() && nextAt != POIFSConstants.END_OF_CHAIN; i++) { loopDetector.claim(nextAt); ByteBuffer fatData = getBlockAt(nextAt); sfat = BATBlock.createBATBlock(bigBlockSize, fatData);
int block = _mini_stream.getStartBlock(); while(true) { loopDetector.claim(block); int next = _filesystem.getNextBlock(block); if(next == POIFSConstants.END_OF_CHAIN) {
private void free(ChainLoopDetector loopDetector) { int nextBlock = startBlock; while(nextBlock != POIFSConstants.END_OF_CHAIN) { int thisBlock = nextBlock; loopDetector.claim(thisBlock); nextBlock = blockStore.getNextBlock(thisBlock); blockStore.setNextBlock(thisBlock, POIFSConstants.UNUSED_BLOCK); } this.startBlock = POIFSConstants.END_OF_CHAIN; }