@@ -185,7 +185,7 @@ class type_caster_generic {
185
185
const void *existing_holder = nullptr) {
186
186
void *src = const_cast <void *>(_src);
187
187
if (src == nullptr )
188
- return none ();
188
+ return none (). inc_ref () ;
189
189
190
190
auto &internals = get_internals ();
191
191
@@ -414,7 +414,7 @@ template <> class type_caster<void_type> {
414
414
public:
415
415
bool load (handle, bool ) { return false ; }
416
416
static handle cast (void_type, return_value_policy /* policy */ , handle /* parent */ ) {
417
- return none ();
417
+ return none (). inc_ref () ;
418
418
}
419
419
PYBIND11_TYPE_CASTER (void_type, _(" None" ));
420
420
};
@@ -452,7 +452,7 @@ template <> class type_caster<void> : public type_caster<void_type> {
452
452
if (ptr)
453
453
return capsule (ptr).release ();
454
454
else
455
- return none ();
455
+ return none (). inc_ref () ;
456
456
}
457
457
458
458
template <typename T> using cast_op_type = void *&;
@@ -569,7 +569,7 @@ template <> class type_caster<char> : public type_caster<std::string> {
569
569
}
570
570
571
571
static handle cast (const char *src, return_value_policy /* policy */ , handle /* parent */ ) {
572
- if (src == nullptr ) return none ();
572
+ if (src == nullptr ) return none (). inc_ref () ;
573
573
return PyUnicode_FromString (src);
574
574
}
575
575
@@ -592,7 +592,7 @@ template <> class type_caster<wchar_t> : public type_caster<std::wstring> {
592
592
}
593
593
594
594
static handle cast (const wchar_t *src, return_value_policy /* policy */ , handle /* parent */ ) {
595
- if (src == nullptr ) return none ();
595
+ if (src == nullptr ) return none (). inc_ref () ;
596
596
return PyUnicode_FromWideChar (src, (ssize_t ) wcslen (src));
597
597
}
598
598
0 commit comments