if you look at the second half of doit with this patch applied, it
is quite clear, that most of it should be guarded by a huge
if(write_it) clause. maybe move this into a function?

Signed-off-by: Stefan Tauner <[email protected]>
---
 flashrom.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/flashrom.c b/flashrom.c
index 6aec3f2..95e5c67 100644
--- a/flashrom.c
+++ b/flashrom.c
@@ -1800,7 +1800,7 @@ int doit(struct flashctx *flash, int force, const char 
*filename, int read_it,
                goto out;
        }
 
-       if (write_it || verify_it) {
+       if (write_it || verify_it) { /* always true: erase and read already 
goto'ed */
                if (read_buf_from_file(newcontents, size, filename)) {
                        ret = 1;
                        goto out;
@@ -1818,7 +1818,7 @@ int doit(struct flashctx *flash, int force, const char 
*filename, int read_it,
         * preserved, but in that case we might perform unneeded erase which
         * takes time as well.
         */
-       if (read_all_first) {
+       if (read_all_first && write_it) {
                msg_cinfo("Reading old flash chip contents... ");
                if (flash->read(flash, oldcontents, 0, size)) {
                        ret = 1;
@@ -1829,7 +1829,8 @@ int doit(struct flashctx *flash, int force, const char 
*filename, int read_it,
        msg_cinfo("done.\n");
 
        /* Build a new image from the given layout. */
-       build_new_image(flash, read_all_first, oldcontents, newcontents);
+       if (write_it)
+               build_new_image(flash, read_all_first, oldcontents, 
newcontents);
 
        if (write_it && erase_and_write_flash(flash, oldcontents, newcontents)) 
{
                msg_cerr("Uh oh. Erase/write failed.");
-- 
1.7.1


_______________________________________________
flashrom mailing list
[email protected]
http://www.flashrom.org/mailman/listinfo/flashrom

Reply via email to