@@ -302,13 +302,13 @@ module.exports = function (log, indexesPath) {
302
302
}
303
303
}
304
304
305
- function safeReadUint32 ( buf ) {
305
+ function safeReadUint32 ( buf , prefixOffset = 0 ) {
306
306
if ( buf . length < 4 ) {
307
307
const bigger = Buffer . alloc ( 4 )
308
308
buf . copy ( bigger )
309
- return bigger . readUInt32LE ( 0 )
309
+ return bigger . readUInt32LE ( prefixOffset )
310
310
} else {
311
- return buf . readUInt32LE ( 0 )
311
+ return buf . readUInt32LE ( prefixOffset )
312
312
}
313
313
}
314
314
@@ -324,7 +324,11 @@ module.exports = function (log, indexesPath) {
324
324
const fieldStart = opData . seek ( buffer )
325
325
if ( ~ fieldStart ) {
326
326
const buf = bipf . slice ( buffer , fieldStart )
327
- addToPrefixMap ( index . map , seq , buf . length ? safeReadUint32 ( buf ) : 0 )
327
+ addToPrefixMap (
328
+ index . map ,
329
+ seq ,
330
+ buf . length ? safeReadUint32 ( buf , opData . prefixOffset ) : 0
331
+ )
328
332
}
329
333
330
334
index . offset = offset
@@ -339,7 +343,9 @@ module.exports = function (log, indexesPath) {
339
343
const fieldStart = opData . seek ( buffer )
340
344
if ( ~ fieldStart ) {
341
345
const buf = bipf . slice ( buffer , fieldStart )
342
- index . tarr [ seq ] = buf . length ? safeReadUint32 ( buf ) : 0
346
+ index . tarr [ seq ] = buf . length
347
+ ? safeReadUint32 ( buf , opData . prefixOffset )
348
+ : 0
343
349
} else {
344
350
index . tarr [ seq ] = 0
345
351
}
@@ -683,7 +689,9 @@ module.exports = function (log, indexesPath) {
683
689
684
690
function matchAgainstPrefix ( op , prefixIndex , cb ) {
685
691
const target = op . data . value
686
- const targetPrefix = target ? safeReadUint32 ( target ) : 0
692
+ const targetPrefix = target
693
+ ? safeReadUint32 ( target , op . data . prefixOffset )
694
+ : 0
687
695
const bitset = new TypedFastBitSet ( )
688
696
const done = multicb ( { pluck : 1 } )
689
697
0 commit comments