diff options
author | Keith Bostic <keith@wiredtiger.com> | 2012-05-29 15:16:15 +0000 |
---|---|---|
committer | Keith Bostic <keith@wiredtiger.com> | 2012-05-29 15:16:15 +0000 |
commit | 4a21af2db5573c4f84209cbd1ed140dd23d20297 (patch) | |
tree | 55bbe3178c291b1623c55982b259236c9c3b7443 | |
parent | 254465c2b2231a82c87dd27bed2ea2c9ed749abe (diff) | |
download | mongo-4a21af2db5573c4f84209cbd1ed140dd23d20297.tar.gz |
Add WT_TRK_JUST_ADDED to the list of track flags we display.
-rw-r--r-- | src/btree/rec_track.c | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/src/btree/rec_track.c b/src/btree/rec_track.c index 730cc26ba38..621d711d0a2 100644 --- a/src/btree/rec_track.c +++ b/src/btree/rec_track.c @@ -487,15 +487,27 @@ err: __wt_scr_free(&buf); char * __wt_track_string(WT_PAGE_TRACK *track, char *buf, size_t len) { - (void)snprintf(buf, len, - "%s%s%s%s%s", - F_ISSET(track, WT_TRK_DISCARD) ? "discard" : "", - F_ISSET(track, WT_TRK_DISCARD) && - F_ISSET(track, WT_TRK_INUSE | WT_TRK_ONPAGE) ? ", " : "", - F_ISSET(track, WT_TRK_INUSE) ? "inuse" : "", - F_ISSET(track, WT_TRK_INUSE) && - F_ISSET(track, WT_TRK_ONPAGE) ? ", " : "", - F_ISSET(track, WT_TRK_ONPAGE) ? "onpage" : ""); + size_t remain, wlen; + char *p, *end; + const char *sep; + + p = buf; + end = buf + len; + +#define WT_APPEND_FLAG(f, name) \ + if (F_ISSET(track, f)) { \ + remain = WT_PTRDIFF(end, p); \ + wlen = (size_t)snprintf(p, remain, "%s%s", sep, name); \ + p = wlen >= remain ? end : p + wlen; \ + sep = ", "; \ + } + + sep = NULL; + WT_APPEND_FLAG(WT_TRK_DISCARD, "discard"); + WT_APPEND_FLAG(WT_TRK_INUSE, "inuse"); + WT_APPEND_FLAG(WT_TRK_JUST_ADDED, "just-added"); + WT_APPEND_FLAG(WT_TRK_ONPAGE, "onpage"); + return (buf); } #endif |