Check for errors when opening program file.

Add a debug assertion in the reader to catch bugs like the last one.
This commit is contained in:
Jesse D. McDonald 2009-11-14 18:50:35 -06:00
parent 8e34feea0b
commit c1ac1323bf
2 changed files with 23 additions and 14 deletions

View File

@ -621,6 +621,7 @@ static value_t patch_placeholders(reader_state_t *state, value_t v)
for (value_t item = state->ref_alist.value; !is_nil(item); item = _CDDR(item)) for (value_t item = state->ref_alist.value; !is_nil(item); item = _CDDR(item))
{ {
assert(!is_placeholder(state, _CADR(item)));
tree_replace(&v, item, _CADR(item)); tree_replace(&v, item, _CADR(item));
} }

View File

@ -45,8 +45,11 @@ int main(int argc, char **argv)
} }
else else
{ {
gc_root_t argv_root;
FILE *f = fopen(argv[1], "r"); FILE *f = fopen(argv[1], "r");
if (f)
{
gc_root_t argv_root;
value_t program; value_t program;
register_gc_root(&argv_root, NIL); register_gc_root(&argv_root, NIL);
@ -64,6 +67,11 @@ int main(int argc, char **argv)
fclose(f); fclose(f);
unregister_gc_root(&argv_root); unregister_gc_root(&argv_root);
} }
else
{
perror(argv[1]);
}
}
return 0; return 0;
} }