- free(p_us);
- p_us = tmp;
-
- tmp = audiod_status_string();
- if (!p_as || strcmp(p_as, tmp))
- stat_client_write(tmp, SI_AUDIOD_STATUS);
- free(p_as);
- p_as = tmp;
-
- tmp = decoder_flags();
- if (!p_df || strcmp(p_df, tmp))
- stat_client_write(tmp, SI_DECODER_FLAGS);
- free(p_df);
- p_df = tmp;
+ free(tmp);
+ stat_task->stat_item_values[SI_AUDIOD_UPTIME] = new;
+ } else
+ free(new);
+
+ old = stat_task->stat_item_values[SI_AUDIOD_STATUS];
+ new = audiod_status_string();
+ if (!old || strcmp(old, new)) {
+ free(old);
+ stat_client_write(new, SI_AUDIOD_STATUS);
+ stat_task->stat_item_values[SI_AUDIOD_STATUS] = new;
+ } else
+ free(new);
+
+ old = stat_task->stat_item_values[SI_DECODER_FLAGS];
+ new = decoder_flags();
+ if (!old || strcmp(old, new)) {
+ stat_client_write(new, SI_DECODER_FLAGS);
+ stat_task->stat_item_values[SI_DECODER_FLAGS] = new;
+ } else
+ free(new);