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:
Diffstat (limited to 'source/blender/makesrna/intern/rna_main_api.c')
-rw-r--r--source/blender/makesrna/intern/rna_main_api.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/makesrna/intern/rna_main_api.c b/source/blender/makesrna/intern/rna_main_api.c
index 4b7ce640a56..679f20fab83 100644
--- a/source/blender/makesrna/intern/rna_main_api.c
+++ b/source/blender/makesrna/intern/rna_main_api.c
@@ -58,6 +58,7 @@
#include "BKE_armature.h"
#include "BKE_lamp.h"
#include "BKE_library.h"
+#include "BKE_library_remap.h"
#include "BKE_object.h"
#include "BKE_material.h"
#include "BKE_icons.h"
@@ -160,7 +161,8 @@ static void rna_Main_scenes_remove(Main *bmain, bContext *C, ReportList *reports
}
- BKE_scene_unlink(bmain, scene, scene_new);
+ BKE_libblock_remap(bmain, scene, scene_new, ID_REMAP_SKIP_INDIRECT_USAGE | ID_REMAP_SKIP_NEVER_NULL_USAGE);
+ BKE_libblock_free(bmain, scene);
RNA_POINTER_INVALIDATE(scene_ptr);
}
else {
@@ -226,7 +228,7 @@ static void rna_Main_objects_remove(Main *bmain, ReportList *reports, PointerRNA
{
Object *object = object_ptr->data;
if (ID_REAL_USERS(object) <= 0) {
- BKE_object_unlink(bmain, object); /* needed or ID pointers to this are not cleared */
+ BKE_libblock_unlink(bmain, object, false);
BKE_libblock_free(bmain, object);
RNA_POINTER_INVALIDATE(object_ptr);
}
@@ -542,7 +544,7 @@ static Group *rna_Main_groups_new(Main *bmain, const char *name)
static void rna_Main_groups_remove(Main *bmain, PointerRNA *group_ptr)
{
Group *group = group_ptr->data;
- BKE_group_unlink(bmain, group);
+ BKE_libblock_unlink(bmain, group, false);
BKE_libblock_free(bmain, group);
RNA_POINTER_INVALIDATE(group_ptr);
}
@@ -736,7 +738,6 @@ static Mask *rna_Main_mask_new(Main *bmain, const char *name)
static void rna_Main_masks_remove(Main *bmain, PointerRNA *mask_ptr)
{
Mask *mask = mask_ptr->data;
- BKE_mask_free(bmain, mask);
BKE_libblock_free(bmain, mask);
RNA_POINTER_INVALIDATE(mask_ptr);
}