From 3f3346d22c38c0d5f135d81d81f7a8c39c9a9bc9 Mon Sep 17 00:00:00 2001 From: Nikolaj Date: Mon, 4 Oct 2021 15:13:57 +0200 Subject: [PATCH] :bug: --- A1/id_query.c | 3 +++ A1/id_query_indexed | Bin 31456 -> 31392 bytes A1/id_query_indexed.c | 8 +------- A1/id_query_naive | Bin 26920 -> 27024 bytes A1/id_query_naive.c | 2 +- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/A1/id_query.c b/A1/id_query.c index cd103fa..595fc4d 100644 --- a/A1/id_query.c +++ b/A1/id_query.c @@ -33,6 +33,9 @@ int id_query_loop(int argc, char** argv, mk_index_fn mk_index, free_index_fn fre uint64_t runtime_sum = 0; while (getline(&line, &line_len, stdin) != -1) { + if (line[0] == '\n') { + break; + } int64_t needle = atol(line); start = microseconds(); diff --git a/A1/id_query_indexed b/A1/id_query_indexed index 82d7823578e8a138db195f65d1bce0990aff7002..ac1c42bb8fe3527699ffd6a1154b43f6283ac09b 100755 GIT binary patch delta 5633 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 I>h`Sv2Q{tdDF6Tf delta 6021 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 - for (int i = 0 ; i < n ; i++) { - struct index_record* irec = &data->irs[i]; - rs[i] = *irec->record; - } - free_records(rs, n); + free(data); } const struct record* lookup_indexed(struct indexed_data *data, int64_t needle) { diff --git a/A1/id_query_naive b/A1/id_query_naive index 9c136e6476fdb73280374e515e6595c63b457b56..196a4e4f3a9a9cb9dcb0fc955468bfb06bec1bf5 100755 GIT binary patch delta 4974 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,data->n); + free(data); } const struct record* lookup_naive(struct naive_data *data, int64_t needle) {