* dtc: Make dtc_open_file() die() if unable to open requested file
@ 2008-03-06 1:16 David Gibson
0 siblings, 0 replies; only message in thread
From: David Gibson @ 2008-03-06 1:16 UTC (permalink / raw)
To: Jon Loeliger; +Cc: linuxppc-dev
All current callers of dtc_open_file() immediately die() if it returns
an error. In a non-interative tool like dtc, it's hard to see what
you could sensibly do to recover from a failure to open an input file
in any case.
Therefore, make dtc_open_file() itself die() if there's an error
opening the requested file. This removes the need for error checking
at the callsites, and ensures a consistent error message in all cases.
While we're at it, change the rror message from fstree.c when we fail
to open the input directory to match dtc_open_file()'s error message.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
dtc-lexer.l | 3 ---
dtc.c | 4 ----
fstree.c | 4 ++--
srcpos.c | 11 ++++-------
4 files changed, 6 insertions(+), 16 deletions(-)
Index: dtc/dtc-lexer.l
===================================================================
--- dtc.orig/dtc-lexer.l 2008-03-06 12:07:32.000000000 +1100
+++ dtc/dtc-lexer.l 2008-03-06 12:08:22.000000000 +1100
@@ -259,9 +259,6 @@
}
newfile = dtc_open_file(filename, searchptr);
- if (!newfile)
- die("Couldn't open \"%s\": %s", filename, strerror(errno));
-
incl_file = xmalloc(sizeof(struct incl_file));
Index: dtc/fstree.c
===================================================================
--- dtc.orig/fstree.c 2008-03-06 12:07:32.000000000 +1100
+++ dtc/fstree.c 2008-03-06 12:08:22.000000000 +1100
@@ -31,8 +31,8 @@
struct node *tree;
d = opendir(dirname);
- if (! d)
- die("opendir(): %s\n", strerror(errno));
+ if (!d)
+ die("Couldn't opendir() \"%s\": %s\n", dirname, strerror(errno));
tree = build_node(NULL, NULL);
Index: dtc/srcpos.c
===================================================================
--- dtc.orig/srcpos.c 2008-03-06 12:07:32.000000000 +1100
+++ dtc/srcpos.c 2008-03-06 12:08:22.000000000 +1100
@@ -82,9 +82,8 @@
if (fname[0] == '/') {
file->file = fopen(fname, "r");
-
if (!file->file)
- goto out;
+ goto fail;
file->name = strdup(fname);
return file;
@@ -98,15 +97,13 @@
return file;
if (errno != ENOENT)
- goto out;
+ goto fail;
search = search->next;
}
-out:
- free(file->dir);
- free(file);
- return NULL;
+fail:
+ die("Couldn't open \"%s\": %s\n", fname, strerror(errno));
}
void dtc_close_file(struct dtc_file *file)
Index: dtc/dtc.c
===================================================================
--- dtc.orig/dtc.c 2008-03-06 12:08:34.000000000 +1100
+++ dtc/dtc.c 2008-03-06 12:08:38.000000000 +1100
@@ -193,10 +193,6 @@
bi = dt_from_fs(arg);
} else if(streq(inform, "dtb")) {
inf = dtc_open_file(arg, NULL);
- if (!inf)
- die("Couldn't open \"%s\": %s\n", arg,
- strerror(errno));
-
bi = dt_from_blob(inf->file);
} else {
die("Unknown input format \"%s\"\n", inform);
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2008-03-06 1:16 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-03-06 1:16 dtc: Make dtc_open_file() die() if unable to open requested file David Gibson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.