mirror of
https://github.com/blender/blender
synced 2026-09-29 04:37:17 +03:00
Cycles: Prevent crash in special cases when object has less slots than mesh
This is something what was guaranteed in give_current_material(), just copied some range checking logic from there. Not sure what would be a proper fix here tho.
This commit is contained in:
parent
abc8810911
commit
daa1487425
1 changed files with 18 additions and 4 deletions
|
|
@ -2368,8 +2368,12 @@ Mesh *BKE_mesh_new_from_object(
|
|||
if (tmpcu->mat) {
|
||||
for (i = tmpcu->totcol; i-- > 0; ) {
|
||||
/* are we an object material or data based? */
|
||||
|
||||
tmpmesh->mat[i] = ob->matbits[i] ? ob->mat[i] : tmpcu->mat[i];
|
||||
if (ob->matbits[i] && i >= ob->totcol) {
|
||||
tmpmesh->mat[i] = NULL;
|
||||
}
|
||||
else {
|
||||
tmpmesh->mat[i] = ob->matbits[i] ? ob->mat[i] : tmpcu->mat[i];
|
||||
}
|
||||
|
||||
if (do_mat_id_us && tmpmesh->mat[i]) {
|
||||
id_us_plus(&tmpmesh->mat[i]->id);
|
||||
|
|
@ -2388,7 +2392,12 @@ Mesh *BKE_mesh_new_from_object(
|
|||
if (tmpmb->mat) {
|
||||
for (i = tmpmb->totcol; i-- > 0; ) {
|
||||
/* are we an object material or data based? */
|
||||
tmpmesh->mat[i] = ob->matbits[i] ? ob->mat[i] : tmpmb->mat[i];
|
||||
if (ob->matbits[i] && i >= ob->totcol) {
|
||||
tmpmesh->mat[i] = NULL;
|
||||
}
|
||||
else {
|
||||
tmpmesh->mat[i] = ob->matbits[i] ? ob->mat[i] : tmpmb->mat[i];
|
||||
}
|
||||
|
||||
if (do_mat_id_us && tmpmesh->mat[i]) {
|
||||
id_us_plus(&tmpmesh->mat[i]->id);
|
||||
|
|
@ -2408,7 +2417,12 @@ Mesh *BKE_mesh_new_from_object(
|
|||
if (origmesh->mat) {
|
||||
for (i = origmesh->totcol; i-- > 0; ) {
|
||||
/* are we an object material or data based? */
|
||||
tmpmesh->mat[i] = ob->matbits[i] ? ob->mat[i] : origmesh->mat[i];
|
||||
if (ob->matbits[i] && i >= ob->totcol) {
|
||||
tmpmesh->mat[i] = NULL;
|
||||
}
|
||||
else {
|
||||
tmpmesh->mat[i] = ob->matbits[i] ? ob->mat[i] : origmesh->mat[i];
|
||||
}
|
||||
|
||||
if (do_mat_id_us && tmpmesh->mat[i]) {
|
||||
id_us_plus(&tmpmesh->mat[i]->id);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue