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

ncd: modules: multidepend: allow resolving when down

ambrop7 14 лет назад
Родитель
Сommit
d3c7136b07
1 измененных файлов с 10 добавлено и 7 удалено
  1. 10 7
      ncd/modules/multidepend.c

+ 10 - 7
ncd/modules/multidepend.c

@@ -360,9 +360,10 @@ static void depend_func_clean (void *vo)
 static int depend_func_getvar (void *vo, const char *varname, NCDValue *out)
 {
     struct depend *o = vo;
-    ASSERT(o->provide)
-    ASSERT(!o->provide_collapsing)
-    ASSERT(!o->provide->dying)
+    
+    if (!o->provide) {
+        return 0;
+    }
     
     return NCDModuleInst_Backend_GetVar(o->provide->i, varname, out);
 }
@@ -370,9 +371,10 @@ static int depend_func_getvar (void *vo, const char *varname, NCDValue *out)
 static NCDModuleInst * depend_func_getobj (void *vo, const char *objname)
 {
     struct depend *o = vo;
-    ASSERT(o->provide)
-    ASSERT(!o->provide_collapsing)
-    ASSERT(!o->provide->dying)
+    
+    if (!o->provide) {
+        return NULL;
+    }
     
     return NCDModuleInst_Backend_GetObj(o->provide->i, objname);
 }
@@ -388,7 +390,8 @@ static const struct NCDModule modules[] = {
         .func_die = depend_func_die,
         .func_clean = depend_func_clean,
         .func_getvar = depend_func_getvar,
-        .func_getobj = depend_func_getobj
+        .func_getobj = depend_func_getobj,
+        .can_resolve_when_down = 1
     }, {
         .type = NULL
     }