void destroy_svc (svc_t * delSvc) { for (inst_list_iterator it = inst_list_begin (delSvc->instances); it != NULL; inst_list_iterator_next (&it)) { destroy_instance (it->val); } List_destroy (delSvc->instances); destroy_properties_list (delSvc->properties); free (delSvc->name); free (delSvc); }
rpc_svc_t svc_to_rpc_svc (svc_t * svc) { register unsigned i_cnt = 0, i_index = 0; rpc_svc_t newRpc_svc; if (!svc) { newRpc_svc.name = strdup ("NULL"); return newRpc_svc; } newRpc_svc.id = svc->id; newRpc_svc.name = strdup (svc->name); i_cnt = List_count (svc->instances); newRpc_svc.instances.instances_len = i_cnt; if (i_cnt > 0) { newRpc_svc.instances.instances_val = malloc (i_cnt * sizeof (rpc_svc_instance_t)); if (newRpc_svc.instances.instances_val) for (inst_list_iterator it = inst_list_begin (svc->instances); it != NULL; inst_list_iterator_next (&it)) { newRpc_svc.instances.instances_val[i_index++] = svc_instance_to_rpc_svc_instance (it->val); } } else newRpc_svc.instances.instances_val = 0; newRpc_svc.properties.properties_len = List_count (svc->properties); newRpc_svc.properties.properties_val = property_list_to_rpc_property_array (svc->properties); return newRpc_svc; }