| 914 | |
| 915 | |
| 916 | void clean_cc_old_data(struct cc_data *data) |
| 917 | { |
| 918 | struct cc_skill *skill, **prv_skill; |
| 919 | struct cc_agent *agent, **prv_agent; |
| 920 | struct cc_flow *flow, **prv_flow; |
| 921 | int i; |
| 922 | |
| 923 | /* clean old skills */ |
| 924 | skill = data->skills_map; |
| 925 | prv_skill = &(data->skills_map); |
| 926 | while(skill) { |
| 927 | if (skill->is_new) { |
| 928 | skill->is_new = 0; |
| 929 | prv_skill = &(skill->next); |
| 930 | skill = skill->next; |
| 931 | } else { |
| 932 | *prv_skill = skill->next; |
| 933 | free_cc_skill(skill); |
| 934 | skill = (*prv_skill); |
| 935 | } |
| 936 | } |
| 937 | |
| 938 | /* clean old agents */ |
| 939 | for(i= 0; i< 2; i++) { |
| 940 | agent = data->agents[i]; |
| 941 | prv_agent = &data->agents[i]; |
| 942 | while(agent) { |
| 943 | if (agent->is_new) { |
| 944 | agent->is_new = 0; |
| 945 | prv_agent = &(agent->next); |
| 946 | agent = agent->next; |
| 947 | } else { |
| 948 | *prv_agent = agent->next; |
| 949 | if (agent->ref_cnt==0) { |
| 950 | free_cc_agent(agent); |
| 951 | } else { |
| 952 | agent->next = data->old_agents; |
| 953 | data->old_agents = agent; |
| 954 | } |
| 955 | agent = (*prv_agent); |
| 956 | data->totalnr_agents--; |
| 957 | } |
| 958 | } |
| 959 | } |
| 960 | |
| 961 | /* clean old flows */ |
| 962 | flow = data->flows; |
| 963 | prv_flow = &(data->flows); |
| 964 | while(flow) { |
| 965 | flow->logged_agents = 0; |
| 966 | if (flow->is_new) { |
| 967 | flow->is_new = 0; |
| 968 | prv_flow = &(flow->next); |
| 969 | flow = flow->next; |
| 970 | } else { |
| 971 | *prv_flow = flow->next; |
| 972 | if (flow->ref_cnt==0) { |
| 973 | free_cc_flow(flow); |
no test coverage detected