interrogate: fix crash reading static property

This commit is contained in:
rdb 2018-11-24 22:44:09 +01:00
parent 3f91615a22
commit e32388c2f8

View File

@ -6975,7 +6975,11 @@ write_getset(ostream &out, Object *obj, Property *property) {
out << " if (wrap != nullptr) {\n" out << " if (wrap != nullptr) {\n"
" wrap->_getitem_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Mapping_Getitem;\n"; " wrap->_getitem_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Mapping_Getitem;\n";
if (!property->_setter_remaps.empty()) { if (!property->_setter_remaps.empty()) {
out << " if (!DtoolInstance_IS_CONST(self)) {\n"; if (property->_has_this) {
out << " if (!DtoolInstance_IS_CONST(self)) {\n";
} else {
out << " {\n";
}
out << " wrap->_setitem_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Mapping_Setitem;\n"; out << " wrap->_setitem_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Mapping_Setitem;\n";
out << " }\n"; out << " }\n";
} }
@ -7006,7 +7010,11 @@ write_getset(ostream &out, Object *obj, Property *property) {
" wrap->_len_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Len;\n" " wrap->_len_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Len;\n"
" wrap->_getitem_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Sequence_Getitem;\n"; " wrap->_getitem_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Sequence_Getitem;\n";
if (!property->_setter_remaps.empty()) { if (!property->_setter_remaps.empty()) {
out << " if (!DtoolInstance_IS_CONST(self)) {\n"; if (property->_has_this) {
out << " if (!DtoolInstance_IS_CONST(self)) {\n";
} else {
out << " {\n";
}
out << " wrap->_setitem_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Sequence_Setitem;\n"; out << " wrap->_setitem_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Sequence_Setitem;\n";
if (property->_inserter != nullptr) { if (property->_inserter != nullptr) {
out << " wrap->_insert_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Sequence_insert;\n"; out << " wrap->_insert_func = &Dtool_" << ClassName << "_" << ielem.get_name() << "_Sequence_insert;\n";