DefaultLexiconReader* DefLexReader_init(DefaultLexiconReader *self, Schema *schema, Folder *folder, Snapshot *snapshot, VArray *segments, int32_t seg_tick) { // Init. LexReader_init((LexiconReader*)self, schema, folder, snapshot, segments, seg_tick); DefaultLexiconReaderIVARS *const ivars = DefLexReader_IVARS(self); Segment *segment = DefLexReader_Get_Segment(self); // Build an array of SegLexicon objects. ivars->lexicons = VA_new(Schema_Num_Fields(schema)); for (uint32_t i = 1, max = Schema_Num_Fields(schema) + 1; i < max; i++) { String *field = Seg_Field_Name(segment, i); if (field && S_has_data(schema, folder, segment, field)) { SegLexicon *lexicon = SegLex_new(schema, folder, segment, field); VA_Store(ivars->lexicons, i, (Obj*)lexicon); } } return self; }
DefaultLexiconReader* DefLexReader_init(DefaultLexiconReader *self, Schema *schema, Folder *folder, Snapshot *snapshot, VArray *segments, i32_t seg_tick) { Segment *segment; u32_t i, max; /* Init. */ LexReader_init((LexiconReader*)self, schema, folder, snapshot, segments, seg_tick); segment = DefLexReader_Get_Segment(self); /* Build an array of SegLexicon objects. */ self->lexicons = VA_new(Schema_Num_Fields(schema)); for (i = 1, max = Schema_Num_Fields(schema) + 1; i < max; i++) { CharBuf *field = Seg_Field_Name(segment, i); if (field && S_has_data(schema, folder, segment, field)) { SegLexicon *lexicon = SegLex_new(schema, folder, segment, field); VA_Store(self->lexicons, i, (Obj*)lexicon); } } return self; }