Просмотр исходного кода

ncd: remove process_rap() and instead add process_have_child()

ambrop7 13 лет назад
Родитель
Сommit
d3bd13f229
1 измененных файлов с 8 добавлено и 12 удалено
  1. 8 12
      ncd/ncd.c

+ 8 - 12
ncd/ncd.c

@@ -157,7 +157,7 @@ static int process_new (NCDProcess *proc_ast, NCDInterpBlock *iblock, NCDModuleP
 static void process_free (struct process *p, NCDModuleProcess **out_mp);
 static int process_mem_is_preallocated (struct process *p, char *mem);
 static void process_start_terminating (struct process *p);
-static int process_rap (struct process *p);
+static int process_have_child (struct process *p);
 static void process_assert_pointers (struct process *p);
 static void process_logfunc (struct process *p);
 static void process_log (struct process *p, int level, const char *fmt, ...);
@@ -744,13 +744,9 @@ void process_start_terminating (struct process *p)
     process_schedule_work(p);
 }
 
-int process_rap (struct process *p)
+int process_have_child (struct process *p)
 {
-    if (p->ap > 0 && p->statements[p->ap - 1].state == SSTATE_CHILD) {
-        return (p->ap - 1);
-    } else {
-        return p->ap;
-    }
+    return (p->ap > 0 && p->statements[p->ap - 1].state == SSTATE_CHILD);
 }
 
 void process_assert_pointers (struct process *p)
@@ -855,7 +851,7 @@ void process_work_job_handler (struct process *p)
     }
     
     // process was up but is no longer?
-    if (p->state == PSTATE_UP && !(p->ap == process_rap(p) && p->ap == p->num_statements)) {
+    if (p->state == PSTATE_UP && !(!process_have_child(p) && p->ap == p->num_statements)) {
         // if we have module process, wait for its permission to continue
         if (p->module_process) {
             // set state waiting
@@ -888,7 +884,7 @@ void process_work_job_handler (struct process *p)
     }
     
     // clean?
-    if (p->ap > process_rap(p)) {
+    if (process_have_child(p)) {
         ASSERT(p->ap > 0)
         ASSERT(p->ap <= p->num_statements)
         
@@ -942,7 +938,7 @@ void process_advance (struct process *p)
 {
     process_assert_pointers(p);
     ASSERT(p->ap == p->fp)
-    ASSERT(p->ap == process_rap(p))
+    ASSERT(!process_have_child(p))
     ASSERT(p->ap < p->num_statements)
     ASSERT(!p->have_error)
     ASSERT(!BPending_IsSet(&p->work_job))
@@ -1041,7 +1037,7 @@ void process_wait_timer_handler (struct process *p)
 {
     process_assert_pointers(p);
     ASSERT(p->ap == p->fp)
-    ASSERT(p->ap == process_rap(p))
+    ASSERT(!process_have_child(p))
     ASSERT(p->ap < p->num_statements)
     ASSERT(!p->have_error)
     ASSERT(!BPending_IsSet(&p->work_job))
@@ -1182,7 +1178,7 @@ int statement_allocate_memory (struct statement *ps, int alloc_size, void **out_
 
 int statement_resolve_argument (struct statement *ps, NCDInterpValue *arg, NCDValMem *mem, NCDValRef *out)
 {
-    ASSERT(ps->i <= process_rap(ps->p))
+    ASSERT(ps->i <= ps->p->ap - process_have_child(ps->p))
     ASSERT(arg)
     ASSERT(mem)
     ASSERT(out)