X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=citadel%2Fdatabase.c;h=7bb650384037c473d837972350cdb78e896f8cba;hp=dc247df978a194ad2c98af31403a0e7013d942ce;hb=5947574f1155b13045c871465ed9c591a928199d;hpb=3d242c4571f3d07f76802f08811ccb34f212c315 diff --git a/citadel/database.c b/citadel/database.c index dc247df97..7bb650384 100644 --- a/citadel/database.c +++ b/citadel/database.c @@ -278,6 +278,28 @@ void cdb_free(struct cdbdata *cdb) phree(cdb); } +void cdb_close_cursor(cdb) +{ + while (max_keys <= CC->cs_pid) { + ++max_keys; + if (dtkey == NULL) { + dtkey = (datum *) + mallok((sizeof(datum) * max_keys)); + } else { + dtkey = (datum *) + reallok(dtkey, (sizeof(datum) * max_keys)); + } + dtkey[max_keys - 1].dsize = 0; + dtkey[max_keys - 1].dptr = NULL; + } + + if (dtkey[CC->cs_pid].dptr != NULL) { + phree(dtkey[CC->cs_pid].dptr); + } + dtkey[CC->cs_pid].dptr = NULL; + dtkey[CC->cs_pid].dsize = 0; +} + /* * Prepare for a sequential search of an entire database. (In the gdbm model,