MCPcopy Create free account
hub / github.com/corosync/corosync / icmap_copy_map

Function icmap_copy_map

exec/icmap.c:1302–1334  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1300}
1301
1302cs_error_t icmap_copy_map(icmap_map_t dst_map, const icmap_map_t src_map)
1303{
1304 icmap_iter_t iter;
1305 size_t value_len;
1306 icmap_value_types_t value_type;
1307 const char *key_name;
1308 cs_error_t err;
1309 void *value;
1310
1311 iter = icmap_iter_init_r(src_map, NULL);
1312 if (iter == NULL) {
1313 return (CS_ERR_NO_MEMORY);
1314 }
1315
1316 err = CS_OK;
1317
1318 while ((key_name = icmap_iter_next(iter, &value_len, &value_type)) != NULL) {
1319 err = icmap_get_ref_r(src_map, key_name, &value, &value_len, &value_type);
1320 if (err != CS_OK) {
1321 goto exit_iter_finalize;
1322 }
1323
1324 err = icmap_set_r(dst_map, key_name, value, value_len, value_type);
1325 if (err != CS_OK) {
1326 goto exit_iter_finalize;
1327 }
1328 }
1329
1330exit_iter_finalize:
1331 icmap_iter_finalize(iter);
1332
1333 return (err);
1334}

Calls 5

icmap_iter_init_rFunction · 0.85
icmap_iter_nextFunction · 0.85
icmap_get_ref_rFunction · 0.85
icmap_set_rFunction · 0.85
icmap_iter_finalizeFunction · 0.85

Tested by

no test coverage detected