X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Ftdb2%2Ftest%2Flayout.c;h=02afdd2362918e4072750bb338b5ca45ee250f9f;hp=04111b4a697dd2d7bdbe43701e91cd21a6760caa;hb=d1383862ad9a74e713dc915d351b74da4db35078;hpb=54c087e9b147c70a06fe5e7543e39aa70d406b6d diff --git a/ccan/tdb2/test/layout.c b/ccan/tdb2/test/layout.c index 04111b4a..02afdd23 100644 --- a/ccan/tdb2/test/layout.c +++ b/ccan/tdb2/test/layout.c @@ -245,16 +245,7 @@ struct tdb_context *tdb_layout_get(struct tdb_layout *layout) zone_left -= len; } - /* Fill final zone with free record. */ - if (zone_left != 0) { - tdb_layout_add_free(layout, - zone_left - - sizeof(struct tdb_used_record)); - layout->elem[layout->num_elems-1].base.off = off; - off += zone_left; - } - - mem = malloc(off+1); + mem = malloc(off); /* Now populate our header, cribbing from a real TDB header. */ tdb = tdb_open(NULL, TDB_INTERNAL, O_RDWR, 0, &tap_log_attr); memcpy(mem, tdb->map_ptr, sizeof(struct tdb_header)); @@ -262,7 +253,7 @@ struct tdb_context *tdb_layout_get(struct tdb_layout *layout) /* Mug the tdb we have to make it use this. */ free(tdb->map_ptr); tdb->map_ptr = mem; - tdb->map_size = off+1; + tdb->map_size = off; for (i = 0; i < layout->num_elems; i++) { union tdb_layout_elem *e = &layout->elem[i]; @@ -304,9 +295,6 @@ struct tdb_context *tdb_layout_get(struct tdb_layout *layout) } } - /* Write tailer. */ - ((uint8_t *)tdb->map_ptr)[tdb->map_size-1] = last_zone->zone_bits; - /* Get physical if they asked for it. */ if (layout->filename) { int fd = open(layout->filename, O_WRONLY|O_TRUNC|O_CREAT, @@ -321,5 +309,6 @@ struct tdb_context *tdb_layout_get(struct tdb_layout *layout) tdb = tdb_open(layout->filename, TDB_NOMMAP, O_RDWR, 0, &tap_log_attr); } + return tdb; }