Lines Matching refs:v_h

1296     static void init_holder(detail::instance *inst, detail::value_and_holder &v_h,
1300 v_h.value_ptr<type>()->shared_from_this());
1302 new (std::addressof(v_h.holder<holder_type>())) holder_type(std::move(sh));
1303 v_h.set_holder_constructed();
1307 if (!v_h.holder_constructed() && inst->owned) {
1308 new (std::addressof(v_h.holder<holder_type>())) holder_type(v_h.value_ptr<type>());
1309 v_h.set_holder_constructed();
1313 static void init_holder_from_existing(const detail::value_and_holder &v_h,
1315 new (std::addressof(v_h.holder<holder_type>())) holder_type(*reinterpret_cast<const holder_type *>(holder_ptr));
1318 static void init_holder_from_existing(const detail::value_and_holder &v_h,
1320 new (std::addressof(v_h.holder<holder_type>())) holder_type(std::move(*const_cast<holder_type *>(holder_ptr)));
1324 static void init_holder(detail::instance *inst, detail::value_and_holder &v_h,
1327 init_holder_from_existing(v_h, holder_ptr, std::is_copy_constructible<holder_type>());
1328 v_h.set_holder_constructed();
1330 new (std::addressof(v_h.holder<holder_type>())) holder_type(v_h.value_ptr<type>());
1331 v_h.set_holder_constructed();
1340 auto v_h = inst->get_value_and_holder(detail::get_type_info(typeid(type)));
1341 if (!v_h.instance_registered()) {
1342 register_instance(inst, v_h.value_ptr(), v_h.type);
1343 v_h.set_instance_registered();
1345 init_holder(inst, v_h, (const holder_type *) holder_ptr, v_h.value_ptr<type>());
1349 static void dealloc(detail::value_and_holder &v_h) {
1350 if (v_h.holder_constructed()) {
1351 v_h.holder<holder_type>().~holder_type();
1352 v_h.set_holder_constructed(false);
1355 detail::call_operator_delete(v_h.value_ptr<type>(),
1356 v_h.type->type_size,
1357 v_h.type->type_align
1360 v_h.value_ptr() = nullptr;