static rc_t TableWriterSeq_WriteStatistics(TableWriterSeq const *cself, KMDataNode *node) { pb_t pb; rc_t rc; KDataBuffer buf; rc = KDataBufferMake(&buf, 8 * sizeof(pb.stats[0]), cself->statsCount); if (rc) return rc; pb.stats = buf.base; pb.i = 0; rc = KVectorVisitU64(cself->stats, 0, stats_cb, &pb); if (rc == 0) { unsigned i; unsigned const n = cself->statsCount < 126 ? cself->statsCount : 126; uint64_t *const distance = buf.base; ksort(pb.stats, cself->statsCount, sizeof(pb.stats[0]), stats_cmp_count, NULL); ksort(pb.stats, n, sizeof(pb.stats[0]), stats_cmp_distance, NULL); for (i = 0; i != n; ++i) { distance[i] = pb.stats[i].distance; } rc = KMDataNodeWrite(node, distance, n * sizeof(distance[0])); } KDataBufferWhack(&buf); return rc; }
void rna_splice_log_exit_ref( struct rna_splice_log * sl, struct rna_splice_dict * dict ) { if ( sl != NULL && dict != NULL ) { KVectorVisitU64 ( dict->v, false, on_dict_key_value, sl ); } }