Do not call functions inside assert()
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 31 May 2019 18:45:52 +0000 (14:45 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 31 May 2019 18:52:04 +0000 (14:52 -0400)
We ought to be able to delete all asserts and have no change to the
kernel.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/arch/riscv/env.c
kern/src/process.c

index 0adcdd0..a2f5649 100644 (file)
@@ -159,6 +159,8 @@ int env_user_mem_walk(env_t *e, void *start, size_t len,
 
 void env_pagetable_free(env_t *e)
 {
+       int ret;
+
        int pt_free(env_t * e, pte_t * pte, void *va, void *arg)
        {
                if (!PAGE_PRESENT(pte))
@@ -167,6 +169,7 @@ void env_pagetable_free(env_t *e)
                return 0;
        }
 
-       assert(user_mem_walk_recursive(e, 0, KERNBASE, NULL, NULL, pt_free,
-                                      NULL, e->env_pgdir, 0) == 0);
+       ret = user_mem_walk_recursive(e, 0, KERNBASE, NULL, NULL, pt_free, NULL,
+                                     e->env_pgdir, 0)
+       assert(ret == 0);
 }
index e11132a..4e3f78c 100644 (file)
@@ -484,13 +484,16 @@ struct proc *proc_create(struct file_or_chan *prog, char **argv, char **envp)
 {
        struct proc *p;
        error_t r;
+       int ret;
+
        if ((r = proc_alloc(&p, current, 0 /* flags */)) < 0)
                panic("proc_create: %d", r);
        int argc = 0, envc = 0;
        if(argv) while(argv[argc]) argc++;
        if(envp) while(envp[envc]) envc++;
        proc_set_progname(p, argc ? argv[0] : NULL);
-       assert(load_elf(p, prog, argc, argv, envc, envp) == 0);
+       ret = load_elf(p, prog, argc, argv, envc, envp);
+       assert(ret == 0);
        __proc_ready(p);
        return p;
 }