Lines Matching defs:v_h

72                               value_and_holder &v_h, Cpp<Class> &&base) {
73 v_h.value_ptr() = new Alias<Class>(std::move(base));
96 void construct(value_and_holder &v_h, Cpp<Class> *ptr, bool need_alias) {
107 v_h.value_ptr() = ptr;
108 v_h.set_instance_registered(true); // To prevent init_instance from registering it
109 v_h.type->init_instance(v_h.inst, nullptr); // Set up the holder
110 Holder<Class> temp_holder(std::move(v_h.holder<Holder<Class>>())); // Steal the holder
111 v_h.type->dealloc(v_h); // Destroys the moved-out holder remains, resets value ptr to null
112 v_h.set_instance_registered(false);
114 construct_alias_from_cpp<Class>(is_alias_constructible<Class>{}, v_h, std::move(*ptr));
117 v_h.value_ptr() = ptr;
124 void construct(value_and_holder &v_h, Alias<Class> *alias_ptr, bool) {
126 v_h.value_ptr() = static_cast<Cpp<Class> *>(alias_ptr);
133 void construct(value_and_holder &v_h, Holder<Class> holder, bool need_alias) {
140 v_h.value_ptr() = ptr;
141 v_h.type->init_instance(v_h.inst, &holder);
149 void construct(value_and_holder &v_h, Cpp<Class> &&result, bool need_alias) {
153 construct_alias_from_cpp<Class>(is_alias_constructible<Class>{}, v_h, std::move(result));
155 v_h.value_ptr() = new Cpp<Class>(std::move(result));
162 void construct(value_and_holder &v_h, Alias<Class> &&result, bool) {
165 v_h.value_ptr() = new Alias<Class>(std::move(result));
173 cl.def("__init__", [](value_and_holder &v_h, Args... args) {
174 v_h.value_ptr() = construct_or_initialize<Cpp<Class>>(std::forward<Args>(args)...);
182 cl.def("__init__", [](value_and_holder &v_h, Args... args) {
183 if (Py_TYPE(v_h.inst) == v_h.type->type)
184 v_h.value_ptr() = construct_or_initialize<Cpp<Class>>(std::forward<Args>(args)...);
186 v_h.value_ptr() = construct_or_initialize<Alias<Class>>(std::forward<Args>(args)...);
194 cl.def("__init__", [](value_and_holder &v_h, Args... args) {
195 v_h.value_ptr() = construct_or_initialize<Alias<Class>>(std::forward<Args>(args)...);
205 cl.def("__init__", [](value_and_holder &v_h, Args... args) {
206 v_h.value_ptr() = construct_or_initialize<Alias<Class>>(std::forward<Args>(args)...);
236 (value_and_holder &v_h, Args... args) {
237 construct<Class>(v_h, func(std::forward<Args>(args)...),
238 Py_TYPE(v_h.inst) != v_h.type->type);
273 (value_and_holder &v_h, CArgs... args) {
274 if (Py_TYPE(v_h.inst) == v_h.type->type)
277 construct<Class>(v_h, class_func(std::forward<CArgs>(args)...), false);
279 construct<Class>(v_h, alias_func(std::forward<CArgs>(args)...), true);
286 void setstate(value_and_holder &v_h, T &&result, bool need_alias) {
287 construct<Class>(v_h, std::forward<T>(result), need_alias);
293 void setstate(value_and_holder &v_h, std::pair<T, O> &&result, bool need_alias) {
294 construct<Class>(v_h, std::move(result.first), need_alias);
295 setattr((PyObject *) v_h.inst, "__dict__", result.second);
326 (value_and_holder &v_h, ArgState state) {
327 setstate<Class>(v_h, func(std::forward<ArgState>(state)),
328 Py_TYPE(v_h.inst) != v_h.type->type);