public int fillFields(byte[] data, int pOffset, EscherRecordFactory recordFactory) {int bytesRemaining = readHeader(data, pOffset);int bytesWritten = 8;int offset = pOffset + 8;while (bytesRemaining > 0 && offset < data.length) {EscherRecord child = recordFactory.createRecord(data, offset);int childBytesWritten = child.fillFields(data, offset, recordFactory);bytesWritten += childBytesWritten;offset += childBytesWritten;bytesRemaining -= childBytesWritten;addChildRecord(child);if (offset >= data.length && bytesRemaining > 0) {_remainingLength = bytesRemaining;if (log.check(POILogger.WARN)) {log.log(POILogger.WARN, "Not enough Escher data: " + bytesRemaining + " bytes remaining but no space left");}}}return bytesWritten;}

public override int FillFields(byte[] data, int offset, IEscherRecordFactory recordFactory){int bytesRemaining = ReadHeader(data, offset);int bytesWritten = 8;offset += 8;while (bytesRemaining > 0 && offset < data.Length){EscherRecord child = recordFactory.CreateRecord(data, offset);int childBytesWritten = child.FillFields(data, offset, recordFactory);bytesWritten += childBytesWritten;offset += childBytesWritten;bytesRemaining -= childBytesWritten;AddChildRecord(child);if (offset >= data.Length && bytesRemaining > 0){_remainingLength = bytesRemaining;log.Log(POILogger.WARN, "Not enough Escher data: " + bytesRemaining + " bytes remaining but no space left");}}return bytesWritten;}
