void must_not_delete_cpp_object(SV* perl_obj, bool must_not_delete) { HV* hidden_hash; IV can_delete; SV** can_delete_sv; hidden_hash = get_hidden_hash(perl_obj); can_delete_sv = hv_fetch(hidden_hash, "_can_delete", 11, 0); can_delete = must_not_delete ? 0 : 1; sv_setiv(*can_delete_sv, can_delete); hv_store(hidden_hash, "_can_delete", 11, *can_delete_sv, 0); }