summaryrefslogtreecommitdiffstatshomepage
path: root/src/tools/imgtool/modules/concept.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/imgtool/modules/concept.cpp')
-rw-r--r--src/tools/imgtool/modules/concept.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/tools/imgtool/modules/concept.cpp b/src/tools/imgtool/modules/concept.cpp
index 6a285903a7f..7d5d65f1914 100644
--- a/src/tools/imgtool/modules/concept.cpp
+++ b/src/tools/imgtool/modules/concept.cpp
@@ -126,7 +126,7 @@ struct concept_iterator
};
-static imgtoolerr_t concept_image_init(imgtool::image *img, imgtool::stream &f);
+static imgtoolerr_t concept_image_init(imgtool::image *img, imgtool::stream::ptr &&stream);
static void concept_image_exit(imgtool::image *img);
static void concept_image_info(imgtool::image *img, char *string, size_t len);
static imgtoolerr_t concept_image_beginenum(imgtool::directory *enumeration, const char *path);
@@ -260,19 +260,17 @@ static int get_catalog_entry(concept_image *image, const unsigned char *filename
/*
Open a file as a concept_image.
*/
-static imgtoolerr_t concept_image_init(imgtool::image *img, imgtool::stream &f)
+static imgtoolerr_t concept_image_init(imgtool::image *img, imgtool::stream::ptr &&stream)
{
concept_image *image = (concept_image *) img->extra_bytes();
int reply;
int i;
unsigned totphysrecs;
- image->file_handle = &f;
-
/* read device directory */
for (i=0; i<4; i++)
{
- reply = read_physical_record(f, i+2, ((char *) & image->dev_dir)+i*512);
+ reply = read_physical_record(*stream, i+2, ((char *) & image->dev_dir)+i*512);
if (reply)
return IMGTOOLERR_READERROR;
}
@@ -289,6 +287,7 @@ static imgtoolerr_t concept_image_init(imgtool::image *img, imgtool::stream &f)
return IMGTOOLERR_CORRUPTIMAGE;
}
+ image->file_handle = stream.release();
return IMGTOOLERR_SUCCESS;
}