b->fb = bopen(b->filename, O_RDWR, sorter_stream_bufsize);
if (b->flags & SBF_OPEN_WRITE)
bseek(b->fb, 0, SEEK_END);
- bconfig(b->fb, BCONFIG_IS_TEMP_FILE, 1);
+ bconfig(b->fb, BCONFIG_IS_TEMP_FILE, 1); /* FIXME: Was it always so? */
b->flags &= ~SBF_SWAPPED_OUT;
SORT_XTRACE("Swapped in %s", b->filename);
}
{
ASSERT(!(b->flags & (SBF_OPEN_READ | SBF_DESTROYED)));
b->fb = bopen_tmp(sorter_stream_bufsize);
+ if (sorter_debug & SORT_DEBUG_KEEP_BUCKETS)
+ bconfig(b->fb, BCONFIG_IS_TEMP_FILE, 0);
b->flags |= SBF_OPEN_WRITE;
b->filename = mp_strdup(b->ctx->pool, b->fb->name);
}
static inline void P(copy_data)(P(key) *key, struct fastbuf *in, struct fastbuf *out)
{
- bwrite(out, key, sizeof(P(key)));
+ P(write_key)(out, key);
#ifdef SORT_VAR_DATA
bbcopy(in, out, SORT_DATA_SIZE(*key));
#else