when returning undef just return &PL_sv_undef instead of the confusing SvREFCNT_inc(mp_xs_APR__Pool_2obj(parent_pool)); which eventually leads to the same thing