*/
CONF_PAIR *cf_item_to_pair(CONF_ITEM const *ci)
{
- CONF_PAIR *out;
-
if (ci == NULL) return NULL;
fr_assert(ci->type == CONF_ITEM_PAIR);
- memcpy(&out, &ci, sizeof(out));
- return out;
+ return UNCONST(CONF_PAIR *, ci);
}
/** Cast a #CONF_ITEM to a #CONF_SECTION
*/
CONF_SECTION *cf_item_to_section(CONF_ITEM const *ci)
{
- CONF_SECTION *out;
-
if (ci == NULL) return NULL;
fr_assert(ci->type == CONF_ITEM_SECTION);
- memcpy(&out, &ci, sizeof(out));
- return out;
+ return UNCONST(CONF_SECTION *, ci);
}
/** Cast #CONF_ITEM to #CONF_DATA performing a type check
*/
CONF_DATA *cf_item_to_data(CONF_ITEM const *ci)
{
- CONF_DATA *out;
-
if (ci == NULL) return NULL;
fr_assert(ci->type == CONF_ITEM_DATA);
- memcpy(&out, &ci, sizeof(out));
- return out;
+ return UNCONST(CONF_DATA *, ci);
}
/** Cast a #CONF_PAIR to a #CONF_ITEM
*/
CONF_ITEM *cf_pair_to_item(CONF_PAIR const *cp)
{
- CONF_ITEM *out;
-
if (cp == NULL) return NULL;
- memcpy(&out, &cp, sizeof(out));
- return out;
+ return UNCONST(CONF_ITEM *, cp);
}
/** Cast a #CONF_SECTION to a #CONF_ITEM
*/
CONF_ITEM *cf_section_to_item(CONF_SECTION const *cs)
{
- CONF_ITEM *out;
-
if (cs == NULL) return NULL;
- memcpy(&out, &cs, sizeof(out));
- return out;
+ return UNCONST(CONF_ITEM *, cs);
}
/** Cast #CONF_DATA to a #CONF_ITEM
*/
CONF_ITEM *cf_data_to_item(CONF_DATA const *cd)
{
- CONF_ITEM *out;
-
if (cd == NULL) return NULL;
- memcpy(&out, &cd, sizeof(out));
- return out;
+ return UNCONST(CONF_ITEM *, cd);
}
/** Free a section and associated trees