summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmd/convert/convert.ha2
-rw-r--r--mbr/mbr.ha5
2 files changed, 6 insertions, 1 deletions
diff --git a/cmd/convert/convert.ha b/cmd/convert/convert.ha
index b3cfd38..1f7d474 100644
--- a/cmd/convert/convert.ha
+++ b/cmd/convert/convert.ha
@@ -46,7 +46,7 @@ export fn convert(args: []str) void = {
defer io::close(sourcefd)!;
const source = mbr::from(sourcefd)!;
- // XXX need mbr::finish()
+ defer mbr::finish(source);
let fd = cmd::openfile();
defer io::close(fd)!;
diff --git a/mbr/mbr.ha b/mbr/mbr.ha
index 31a9534..994bdb7 100644
--- a/mbr/mbr.ha
+++ b/mbr/mbr.ha
@@ -53,6 +53,11 @@ export fn from(fd: io::file) (*mbr | nombr | io::error) = {
return self;
};
+export fn finish(self: *mbr) void = {
+ sector::finish(&self.bootsector_sec);
+ free(self);
+};
+
export fn partstream_reader(self: *mbr, entry: *entry) (io::limitstream | io::error) = {
const fd = self.bootsector_sec.fd;
const part = entry.lba_begin * sector::sector_length;