Lines Matching refs:deps
869 struct dso **deps = use_deps ? dso->deps : 0;
870 for (; dso; dso=use_deps ? *deps++ : dso->syms_next) {
908 struct dso **deps = dso->deps;
909 for (; dso; dso = *deps++) {
2378 if (p->deps) return;
2385 /* Use builtin buffer for apps with no external deps, to
2387 p->deps = (p==head && cnt<2) ? builtin_deps :
2388 calloc(cnt+1, sizeof *p->deps);
2389 if (!p->deps) {
2395 p->deps[cnt++] = q;
2406 p->deps[cnt++] = dep;
2408 p->deps[cnt] = 0;
2411 add_dso_parent(p->deps[i], p);
2417 if (p->deps) return;
2428 /* Can't use realloc if the original p->deps was allocated at
2430 * the builtin non-allocated trivial main program deps array. */
2432 || p->deps == builtin_deps;
2441 // Use one more because the last one of the deps is NULL.
2442 p->deps_all = calloc(ndeps_all + 1, sizeof *p->deps);
2445 /* Mark existing (direct) deps so they won't be duplicated. */
2446 for (i=0; p->deps[i]; i++) {
2448 p->deps_all[i] = p->deps[i];
2450 p->deps[i]->mark = 1;
2461 if (!dep->deps[j]->mark) cnt++;
2476 if (dep->deps[j]->mark) continue;
2477 dep->deps[j]->mark = 1;
2478 p->deps_all[ndeps_all++] = dep->deps[j];
2484 for (i=0; p->deps[i]; i++) {
2485 struct dso *dep = p->deps[i];
2487 if (!dep->deps[j]->mark) cnt++;
2490 realloc(p->deps, sizeof(*tmp) * (ndeps_all+cnt+1));
2497 memcpy(tmp, p->deps, sizeof(*tmp) * (ndeps_all+1));
2500 p->deps = tmp;
2502 if (dep->deps[j]->mark) continue;
2503 dep->deps[j]->mark = 1;
2504 p->deps[ndeps_all++] = dep->deps[j];
2506 p->deps[ndeps_all] = 0;
2817 /* Bound on queue size is the total number of indirect deps.
2818 * If a bfs deps list was built, we can use it. Otherwise,
2822 for (cnt=0; dso->deps[cnt]; cnt++)
2823 dso->deps[cnt]->mark = 0;
2824 cnt++; /* self, not included in deps */
2851 /* Then perform pseudo-DFS sort, but ignoring circular deps. */
2855 if (p->deps[p->next_dep]->mark) {
2859 p = p->deps[p->next_dep];
3275 ldso.deps = (struct dso **)no_deps;
3339 vdso.deps = (struct dso **)no_deps;
3481 for (int i = 0; p->deps[i]; i++) {
3482 p->deps[i]->nr_dlopen++;
3485 p->deps[i]->name, p->name, p->deps[i]->nr_dlopen);
3488 p->deps[i]->flags |= DSO_FLAGS_NODELETE;
3655 if (p->deps) {
3657 remove_dso_parent(p->deps[i], p);
3660 free(p->deps);
3775 for (i = 0; p->deps[i]; i++)
3776 if (!p->deps[i]->relocated)
3777 prepare_lazy(p->deps[i]);
3785 for (i = 0; p->deps[i]; i++) {
3786 p->deps[i]->is_reloc_head_so_dep = true;
3787 add_syms(p->deps[i]);
3801 for (size_t i = 0; reloc_head_so->deps[i]; i++) {
3802 reloc_head_so->deps[i]->is_reloc_head_so_dep = false;
4295 if (p->deps != no_deps)
4296 free(p->deps);
4329 for (int i = 0; p->deps[i]; i++) {
4330 if (p->deps[i]->nr_dlopen > 0) {
4331 p->deps[i]->nr_dlopen--;
4334 p->deps[i]->name, p->name);
4340 * - nr_dlopen increases for all deps(include self) when a thread local object destructor is added.
4341 * - nr_dlopen decreases for all deps(include self) when a thread local object destructor is called.
4382 remove_dso_parent(cur->deps[i], cur);
4383 if ((cur->deps[i]->parents_count == 0) && (so_can_unload(cur->deps[i], UNLOAD_ALL_CHECK) == 1)) {
4386 if (ef->dso == cur->deps[i]) {
4396 edeps->dso = cur->deps[i];
4406 for (size_t deps_num = 0; p->deps[deps_num]; deps_num++) {
4409 if (ef->dso == p->deps[deps_num]) {
4417 p->deps[deps_num]->name, p->name, p->deps[deps_num]->nr_dlopen,
4418 p->deps[deps_num]->by_dlopen, p->deps[deps_num]->parents_count);
5834 if (p->deps) {
5849 /* Use builtin buffer for apps with no external deps, to
5851 p->deps = (p == head && cnt < MIN_DEPS_COUNT) ? builtin_deps :
5852 calloc(cnt + 1, sizeof *p->deps);
5853 if (!p->deps) {
5863 p->deps[cnt++] = q;
5895 p->deps[cnt++] = task->p;
5903 p->deps[cnt] = 0;
5906 add_dso_parent(p->deps[i], p);
5939 if (p->deps) {
6307 for (size_t i = 0; p->deps[i]; i++) {
6308 p->deps[i]->nr_dlopen++;
6310 p->deps[i]->name, p->name, p->deps[i]->nr_dlopen);
6313 // Get all the direct and indirect deps.