From: James Ahlborn Date: Thu, 3 Aug 2006 12:45:54 +0000 (+0000) Subject: swap overflow/deleted flag logic X-Git-Tag: rel_1_1_6~15 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=eba7b7286ca8183c7b7091be1f437946e03367b9;p=jackcess.git swap overflow/deleted flag logic git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@81 f203690c-595d-4dc9-a70b-905162fa7fd2 --- diff --git a/src/java/com/healthmarketscience/jackcess/Table.java b/src/java/com/healthmarketscience/jackcess/Table.java index 8cbd796..854a6b4 100644 --- a/src/java/com/healthmarketscience/jackcess/Table.java +++ b/src/java/com/healthmarketscience/jackcess/Table.java @@ -311,10 +311,16 @@ public class Table { _currentRowInPage * _format.SIZE_ROW_LOCATION); _currentRowInPage++; _rowsLeftOnPage--; - if (_rowStart < 0) { + + // FIXME, mdbtools seems to be confused as to which flag is which, this + // code follows the actual code, which disagrees with the HACKING doc + boolean deletedRow = ((_rowStart & 0x4000) != 0); + boolean overflowRow = ((_rowStart & 0x8000) != 0); + + if (deletedRow) { // Deleted row. Skip. return positionAtNextRow(); - } else if ((_rowStart & 0x4000) > 0) { + } else if (overflowRow) { // Overflow page. // FIXME - Currently skipping this. Need to figure out how to read it. _buffer.position(_rowStart - 0x4000);