RNA: include base types in RNA_struct_type_find_property search
Add RNA_struct_type_find_property_no_base for use in the rare situations when this isn't desired. Resolves T90617, where sequence strip sub-types weren't detecting properties that exist in the base "Sequence" types.
This commit is contained in:
		@@ -4475,7 +4475,7 @@ static PyObject *pyrna_struct_meta_idprop_getattro(PyObject *cls, PyObject *attr
 | 
			
		||||
  if ((ret == NULL)  /* || BPy_PropDeferred_CheckTypeExact(ret) */ ) {
 | 
			
		||||
    StructRNA *srna = srna_from_self(cls, "StructRNA.__getattr__");
 | 
			
		||||
    if (srna) {
 | 
			
		||||
      PropertyRNA *prop = RNA_struct_type_find_property(srna, PyUnicode_AsUTF8(attr));
 | 
			
		||||
      PropertyRNA *prop = RNA_struct_type_find_property_no_base(srna, PyUnicode_AsUTF8(attr));
 | 
			
		||||
      if (prop) {
 | 
			
		||||
        PointerRNA tptr;
 | 
			
		||||
        PyErr_Clear(); /* Clear error from tp_getattro. */
 | 
			
		||||
@@ -4497,7 +4497,7 @@ static int pyrna_struct_meta_idprop_setattro(PyObject *cls, PyObject *attr, PyOb
 | 
			
		||||
  const char *attr_str = PyUnicode_AsUTF8(attr);
 | 
			
		||||
 | 
			
		||||
  if (srna && !pyrna_write_check() &&
 | 
			
		||||
      (is_deferred_prop || RNA_struct_type_find_property(srna, attr_str))) {
 | 
			
		||||
      (is_deferred_prop || RNA_struct_type_find_property_no_base(srna, attr_str))) {
 | 
			
		||||
    PyErr_Format(PyExc_AttributeError,
 | 
			
		||||
                 "pyrna_struct_meta_idprop_setattro() "
 | 
			
		||||
                 "can't set in readonly state '%.200s.%S'",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user