mirror of
https://gitlab.freedesktop.org/pkg-config/pkg-config.git
synced 2026-02-04 15:20:32 +01:00
Adds a hash table to the package list expansion to avoid iterating over the children of package nodes that have already been visited. Without this, the expansion is exponential. For library sets with a high degree of dependency, iteration over the tree with revisiting results, in practice, in significant slow down at best and pkg-config failure due to memory exhaustion at worst. The resulting algorithm is equivalent to a topological sort. |
||
|---|---|---|
| .. | ||
| a_dep_c.pc | ||
| b_dep_c.pc | ||
| c_dep.pc | ||
| d_dep_e_f.pc | ||
| d_dep_f_e.pc | ||
| e_dep_g_f.pc | ||
| f_dep_g.pc | ||
| g_dep.pc | ||
| h_dep_k_i_j.pc | ||
| i_dep_k_j.pc | ||
| j_dep_k.pc | ||
| k_dep.pc | ||