/*********************************************** !!!! DO NOT EDIT THIS FILE !!!! This file was auto-generated by Build.PL from lib/KinoSearch/Index/SegWriter.pm See KinoSearch::Docs::DevGuide for details. ***********************************************/ #line 227 "lib/KinoSearch/Index/SegWriter.pm" #include "KinoSearchIndexSegWriter.h" void Kino_SegWriter_write_remapped_norms(OutStream *outstream, SV *doc_map_ref, SV* norms_ref) { SV *norms_sv, *doc_map_sv; I32 *doc_map, *doc_map_end; char *norms; STRLEN doc_map_len, norms_len; /* extract doc map and norms arrays */ doc_map_sv = SvRV(doc_map_ref); doc_map = (I32*)SvPV(doc_map_sv, doc_map_len); doc_map_end = (I32*)SvEND(doc_map_sv); norms_sv = SvRV(norms_ref); norms = SvPV(norms_sv, norms_len); if (doc_map_len != norms_len * sizeof(I32)) Kino_confess("Mismatched doc_map and norms"); /* write a norm for each non-deleted doc */ while (doc_map < doc_map_end) { if (*doc_map != -1) { outstream->write_byte(outstream, *norms); } doc_map++; norms++; } }