diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c index 43969f3c19e..d556ff9797f 100644 --- a/source/blender/editors/sculpt_paint/paint_image.c +++ b/source/blender/editors/sculpt_paint/paint_image.c @@ -427,11 +427,11 @@ static void image_undo_restore(bContext *C, ListBase *lb) for(tile=lb->first; tile; tile=tile->next) { /* find image based on name, pointer becomes invalid with global undo */ - if(ima && strcmp(tile->idname, ima->id.name)==0); + if(ima && strcmp(tile->idname, ima->id.name)==0) { + /* ima is valid */ + } else { - for(ima=bmain->image.first; ima; ima=ima->id.next) - if(strcmp(tile->idname, ima->id.name)==0) - break; + ima= BLI_findstring(&bmain->image, tile->idname, offsetof(ID, name)); } ibuf= BKE_image_get_ibuf(ima, NULL); @@ -442,13 +442,7 @@ static void image_undo_restore(bContext *C, ListBase *lb) full image user (which isn't so obvious, btw) try to find ImBuf with matched file name in list of already loaded images */ - ibuf= ima->ibufs.first; - while(ibuf) { - if(strcmp(tile->ibufname, ibuf->name)==0) - break; - - ibuf= ibuf->next; - } + ibuf= BLI_findstring(&ima->ibufs, tile->ibufname, offsetof(ImBuf, name)); } if (!ima || !ibuf || !(ibuf->rect || ibuf->rect_float)) diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 24e1aa078cf..8047b2df226 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -1095,9 +1095,7 @@ StructRNA *RNA_property_pointer_type(PointerRNA *ptr, PropertyRNA *prop) if(cprop->item_type) return cprop->item_type; } - else { - BLI_assert(0); - } + /* ignore other types, RNA_struct_find_nested calls with unchecked props */ return &RNA_UnknownType; }