mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
fdr/teddy: store and dump number of strings
This commit is contained in:
parent
a17ef3e48a
commit
e4788aae1a
@ -175,6 +175,7 @@ bytecode_ptr<FDR> FDRCompiler::setupFDR() {
|
|||||||
fdr->size = size;
|
fdr->size = size;
|
||||||
fdr->engineID = eng.getID();
|
fdr->engineID = eng.getID();
|
||||||
fdr->maxStringLen = verify_u32(maxLen(lits));
|
fdr->maxStringLen = verify_u32(maxLen(lits));
|
||||||
|
fdr->numStrings = verify_u32(lits.size());
|
||||||
assert(eng.bits > 8 && eng.bits < 16); // we allow domains 9 to 15 only
|
assert(eng.bits > 8 && eng.bits < 16); // we allow domains 9 to 15 only
|
||||||
fdr->domain = eng.bits;
|
fdr->domain = eng.bits;
|
||||||
fdr->domainMask = (1 << eng.bits) - 1;
|
fdr->domainMask = (1 << eng.bits) - 1;
|
||||||
|
@ -86,7 +86,7 @@ void dumpTeddy(const Teddy *teddy, FILE *f) {
|
|||||||
fprintf(f, " masks %u\n", des->numMasks);
|
fprintf(f, " masks %u\n", des->numMasks);
|
||||||
fprintf(f, " buckets %u\n", des->getNumBuckets());
|
fprintf(f, " buckets %u\n", des->getNumBuckets());
|
||||||
fprintf(f, " packed %s\n", des->packed ? "true" : "false");
|
fprintf(f, " packed %s\n", des->packed ? "true" : "false");
|
||||||
fprintf(f, " strings ???\n");
|
fprintf(f, " strings %u\n", teddy->numStrings);
|
||||||
fprintf(f, " size %zu bytes\n", fdrSize((const FDR *)teddy));
|
fprintf(f, " size %zu bytes\n", fdrSize((const FDR *)teddy));
|
||||||
fprintf(f, " max length %u\n", teddy->maxStringLen);
|
fprintf(f, " max length %u\n", teddy->maxStringLen);
|
||||||
fprintf(f, " floodoff %u (%x)\n", teddy->floodOffset,
|
fprintf(f, " floodoff %u (%x)\n", teddy->floodOffset,
|
||||||
@ -107,7 +107,7 @@ void dumpFDR(const FDR *fdr, FILE *f) {
|
|||||||
|
|
||||||
fprintf(f, " domain %u\n", fdr->domain);
|
fprintf(f, " domain %u\n", fdr->domain);
|
||||||
fprintf(f, " stride %u\n", fdr->stride);
|
fprintf(f, " stride %u\n", fdr->stride);
|
||||||
fprintf(f, " strings ???\n");
|
fprintf(f, " strings %u\n", fdr->numStrings);
|
||||||
fprintf(f, " size %zu bytes\n", fdrSize(fdr));
|
fprintf(f, " size %zu bytes\n", fdrSize(fdr));
|
||||||
fprintf(f, " max length %u\n", fdr->maxStringLen);
|
fprintf(f, " max length %u\n", fdr->maxStringLen);
|
||||||
fprintf(f, " floodoff %u (%x)\n", fdr->floodOffset, fdr->floodOffset);
|
fprintf(f, " floodoff %u (%x)\n", fdr->floodOffset, fdr->floodOffset);
|
||||||
|
@ -69,6 +69,7 @@ struct FDR {
|
|||||||
u32 engineID;
|
u32 engineID;
|
||||||
u32 size;
|
u32 size;
|
||||||
u32 maxStringLen;
|
u32 maxStringLen;
|
||||||
|
u32 numStrings;
|
||||||
u32 confOffset;
|
u32 confOffset;
|
||||||
u32 floodOffset;
|
u32 floodOffset;
|
||||||
u8 stride; /* stride - how frequently the data is consulted by the first
|
u8 stride; /* stride - how frequently the data is consulted by the first
|
||||||
|
@ -520,6 +520,7 @@ bytecode_ptr<FDR> TeddyCompiler::build() {
|
|||||||
teddy->size = size;
|
teddy->size = size;
|
||||||
teddy->engineID = eng.getID();
|
teddy->engineID = eng.getID();
|
||||||
teddy->maxStringLen = verify_u32(maxLen(lits));
|
teddy->maxStringLen = verify_u32(maxLen(lits));
|
||||||
|
teddy->numStrings = verify_u32(lits.size());
|
||||||
|
|
||||||
// Write confirm structures.
|
// Write confirm structures.
|
||||||
u8 *ptr = teddy_base + ROUNDUP_CL(headerSize) + ROUNDUP_CL(maskLen) +
|
u8 *ptr = teddy_base + ROUNDUP_CL(headerSize) + ROUNDUP_CL(maskLen) +
|
||||||
|
@ -55,6 +55,7 @@ struct Teddy {
|
|||||||
u32 engineID;
|
u32 engineID;
|
||||||
u32 size;
|
u32 size;
|
||||||
u32 maxStringLen;
|
u32 maxStringLen;
|
||||||
|
u32 numStrings;
|
||||||
u32 confOffset;
|
u32 confOffset;
|
||||||
u32 floodOffset;
|
u32 floodOffset;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user