Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-09-24 04:05:02 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-09-24 04:05:02 +0400
commit701e57e11d0e6d6292c3ca876ccc286a3c4c2cea (patch)
tree6d21710c688f0967617612087948a1a18090113c /source/blender/editors/space_image/image_edit.c
parent2a0649d61d46a0105f8483049f4722d66cef45ae (diff)
fix for issue where you could easily make zero user datablocks (especially with masks which default to fake user).
- Make mask - assign to image editor - disable fake user This would make the image space reference a zero user mask datablock which wouldn't be saved. solve the bug by making mask and image assignments check the real usercount of the ID block (not taking into account fake user).
Diffstat (limited to 'source/blender/editors/space_image/image_edit.c')
-rw-r--r--source/blender/editors/space_image/image_edit.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/editors/space_image/image_edit.c b/source/blender/editors/space_image/image_edit.c
index 92433449985..0d40a6ae007 100644
--- a/source/blender/editors/space_image/image_edit.c
+++ b/source/blender/editors/space_image/image_edit.c
@@ -78,8 +78,8 @@ void ED_space_image_set(SpaceImage *sima, Scene *scene, Object *obedit, Image *i
if (sima->image)
BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_USER_NEW_IMAGE);
- if (sima->image && sima->image->id.us == 0)
- sima->image->id.us = 1;
+ if (sima->image && ID_REAL_USERS(sima->image) <= 0)
+ sima->image->id.us = MAX2(sima->image->id.us, 0) + 1;
if (obedit)
WM_main_add_notifier(NC_GEOM | ND_DATA, obedit->data);
@@ -97,8 +97,8 @@ void ED_space_image_set_mask(bContext *C, SpaceImage *sima, Mask *mask)
sima->mask_info.mask = mask;
/* weak, but same as image/space */
- if (sima->mask_info.mask && sima->mask_info.mask->id.us == 0)
- sima->mask_info.mask->id.us = 1;
+ if (sima->mask_info.mask && ID_REAL_USERS(sima->mask_info.mask) <= 0)
+ sima->mask_info.mask->id.us = MAX2(sima->mask_info.mask->id.us, 0) + 1;
if (C) {
WM_event_add_notifier(C, NC_MASK | NA_SELECTED, mask);