mirror of
https://github.com/mdbtools/mdbtools.git
synced 2025-05-21 01:09:22 +08:00
fixed compute of bitmask size
This commit is contained in:
parent
6f42c3e345
commit
62e65cdd26
6
HACKERS
6
HACKERS
@ -133,7 +133,11 @@ the start of the page (though not always) begins a series of 18 byte records
|
||||
one for each column present. It's format is as follows:
|
||||
+------+---------+--------------------------------------------------------+
|
||||
| ???? | 1 byte | Column Type (see table below) |
|
||||
| ???? |15 bytes | ??? |
|
||||
| ???? | 2 bytes | Column Number, ascending sequential number, starts at 0|
|
||||
| ???? | 1 byte | appears to denote whether a text field is required |
|
||||
| ???? | 1 byte | unknown |
|
||||
| ???? | 4 bytes | Column Number (again) |
|
||||
| ???? | 7 bytes | ??? (timestamp?) |
|
||||
| ???? | 2 bytes | length of column |
|
||||
+-------------------------------------------------------------------------+
|
||||
|
||||
|
@ -54,6 +54,7 @@ int fixed_cols_found, var_cols_found;
|
||||
int col_start, len;
|
||||
int eod; /* end of data */
|
||||
int delflag, lookupflag;
|
||||
int bitmask_sz;
|
||||
|
||||
row_start = mdb_get_int16(mdb, 10+(row*2));
|
||||
row_end = mdb_find_end_of_row(mdb, row);
|
||||
@ -88,7 +89,8 @@ int delflag, lookupflag;
|
||||
else
|
||||
var_cols++;
|
||||
}
|
||||
eod = mdb->pg_buf[row_end-2-var_cols];
|
||||
bitmask_sz = (num_cols - 1) / 8 - 1;
|
||||
eod = mdb->pg_buf[row_end-1-var_cols-bitmask_sz];
|
||||
|
||||
#if MDB_DEBUG
|
||||
fprintf(stdout,"#cols: %-3d #varcols %-3d EOD %-3d\n",
|
||||
|
Loading…
Reference in New Issue
Block a user