diff options
Diffstat (limited to 'src/comp.c')
-rw-r--r-- | src/comp.c | 41 |
1 files changed, 10 insertions, 31 deletions
@@ -26,7 +26,2 @@ struct complist | |||
26 | 26 | ||
27 | /* 0 on the first load, and 1 on all subsequent reloads. Tells the | ||
28 | component_config_commit whether we're starting from scratch or just | ||
29 | updating an already loaded configuration */ | ||
30 | static int loaded; | ||
31 | |||
32 | static struct complist comp_list[2]; | 27 | static struct complist comp_list[2]; |
@@ -542,31 +537,17 @@ component_config_commit (void) | |||
542 | /* Rearrange components, registering entries for the new ones */ | 537 | /* Rearrange components, registering entries for the new ones */ |
543 | for (comp = list->head, i = 0; comp; ) | 538 | for (comp = list->head, i = 0; comp; comp = comp->next, i++) |
544 | { | 539 | { |
545 | struct component *next = comp->next; | 540 | match = complist_find_match (prev, comp); |
546 | if (loaded && comp->mode == pies_comp_startup) | 541 | if (match) |
547 | { | 542 | { |
548 | /* Ignore startup components */ | 543 | component_merge (match, comp); |
549 | component_unlink (comp); | 544 | component_unlink (match); |
545 | match->listidx = cur; | ||
546 | component_link (match, comp->prev); | ||
550 | component_free (comp); | 547 | component_free (comp); |
548 | comp = match; | ||
551 | } | 549 | } |
552 | else | 550 | comp_array[i] = comp; |
553 | { | 551 | comp->arridx = i; |
554 | match = complist_find_match (prev, comp); | ||
555 | if (match) | ||
556 | { | ||
557 | component_merge (match, comp); | ||
558 | component_unlink (match); | ||
559 | match->listidx = cur; | ||
560 | component_link (match, comp->prev); | ||
561 | component_free (comp); | ||
562 | comp = match; | ||
563 | } | ||
564 | comp_array[i] = comp; | ||
565 | comp->arridx = i; | ||
566 | i++; | ||
567 | } | ||
568 | comp = next; | ||
569 | } | 552 | } |
570 | /* Adjust comp_count */ | ||
571 | comp_count = i; | ||
572 | 553 | ||
@@ -587,4 +568,2 @@ component_config_commit (void) | |||
587 | register_prog (comp); | 568 | register_prog (comp); |
588 | |||
589 | loaded = 1; | ||
590 | } | 569 | } |