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
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/BKE_library.h2
-rw-r--r--source/blender/blenkernel/intern/library.c8
-rw-r--r--source/blender/editors/mesh/editmesh_bevel.c2
-rw-r--r--source/blender/makesrna/intern/rna_ID.c10
-rw-r--r--source/blender/makesrna/intern/rna_armature.c6
-rw-r--r--source/blender/makesrna/intern/rna_image.c3
-rw-r--r--source/blender/makesrna/intern/rna_object.c15
-rw-r--r--source/blender/makesrna/intern/rna_pose.c4
-rw-r--r--source/blender/makesrna/intern/rna_screen.c2
-rw-r--r--source/blender/makesrna/intern/rna_space.c6
-rw-r--r--source/blender/python/bmesh/bmesh_py_types.c4
-rw-r--r--source/blender/python/generic/bpy_internal_import.c4
-rw-r--r--source/blender/python/intern/bpy.c4
-rw-r--r--source/blender/python/intern/bpy_library_write.c2
-rw-r--r--source/blender/python/intern/bpy_rna.c6
-rw-r--r--source/blender/python/intern/bpy_rna_anim.c5
-rw-r--r--source/blender/python/intern/bpy_rna_id_collection.c3
-rw-r--r--source/blender/python/intern/gpu_offscreen.c3
18 files changed, 62 insertions, 27 deletions
diff --git a/source/blender/blenkernel/BKE_library.h b/source/blender/blenkernel/BKE_library.h
index 28bc254f25a..aaf53a2396b 100644
--- a/source/blender/blenkernel/BKE_library.h
+++ b/source/blender/blenkernel/BKE_library.h
@@ -208,6 +208,8 @@ void BKE_library_make_local(
void BKE_id_tag_set_atomic(struct ID *id, int tag);
void BKE_id_tag_clear_atomic(struct ID *id, int tag);
+bool BKE_id_is_in_gobal_main(struct ID *id);
+
/* use when "" is given to new_id() */
#define ID_FALLBACK_NAME N_("Untitled")
diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c
index c45903aa1fa..fa9432213f9 100644
--- a/source/blender/blenkernel/intern/library.c
+++ b/source/blender/blenkernel/intern/library.c
@@ -2558,3 +2558,11 @@ void BKE_id_tag_clear_atomic(ID *id, int tag)
{
atomic_fetch_and_and_int32(&id->tag, ~tag);
}
+
+/** Check that given ID pointer actually is in G_MAIN.
+ * Main intended use is for debug asserts in places we cannot easily get rid of G_Main... */
+bool BKE_id_is_in_gobal_main(ID *id) {
+ /* We do not want to fail when id is NULL here, even though this is a bit strange behavior... */
+ return (id == NULL || BLI_findindex(which_libbase(G_MAIN, GS(id->name)), id) != -1);
+}
+
diff --git a/source/blender/editors/mesh/editmesh_bevel.c b/source/blender/editors/mesh/editmesh_bevel.c
index c51a57e27b3..2041852c9ee 100644
--- a/source/blender/editors/mesh/editmesh_bevel.c
+++ b/source/blender/editors/mesh/editmesh_bevel.c
@@ -657,7 +657,7 @@ void MESH_OT_bevel(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_GRAB_CURSOR | OPTYPE_BLOCKING;
RNA_def_enum(ot->srna, "offset_type", offset_type_items, 0, "Amount Type", "What distance Amount measures");
- prop = RNA_def_float(ot->srna, "offset", 0.0f, -1e6f, 1e6f, "Amount", "", 0.0f, 1.0f);
+ prop = RNA_def_float(ot->srna, "offset", 0.0f, -1e6f, 1e6f, "Amount", "", 0.0f, 100.0f);
RNA_def_property_float_array_funcs_runtime(prop, NULL, NULL, mesh_ot_bevel_offset_range_func);
RNA_def_int(ot->srna, "segments", 1, 1, SEGMENTS_HARD_MAX, "Segments", "Segments for curved edge", 1, 8);
RNA_def_float(ot->srna, "profile", 0.5f, PROFILE_HARD_MIN, 1.0f, "Profile",
diff --git a/source/blender/makesrna/intern/rna_ID.c b/source/blender/makesrna/intern/rna_ID.c
index 11e45bc688d..5473eec39c5 100644
--- a/source/blender/makesrna/intern/rna_ID.c
+++ b/source/blender/makesrna/intern/rna_ID.c
@@ -150,7 +150,8 @@ void rna_ID_name_set(PointerRNA *ptr, const char *value)
{
ID *id = (ID *)ptr->data;
BLI_strncpy_utf8(id->name + 2, value, sizeof(id->name) - 2);
- BLI_libblock_ensure_unique_name(G.main, id->name);
+ BLI_assert(BKE_id_is_in_gobal_main(id));
+ BLI_libblock_ensure_unique_name(G_MAIN, id->name);
}
static int rna_ID_name_editable(PointerRNA *ptr, const char **UNUSED(r_info))
@@ -456,7 +457,9 @@ int rna_IDMaterials_assign_int(PointerRNA *ptr, int key, const PointerRNA *assig
short *totcol = give_totcolp_id(id);
Material *mat_id = assign_ptr->id.data;
if (totcol && (key >= 0 && key < *totcol)) {
- assign_material_id(G.main, id, mat_id, key + 1);
+ BLI_assert(BKE_id_is_in_gobal_main(id));
+ BLI_assert(BKE_id_is_in_gobal_main(&mat_id->id));
+ assign_material_id(G_MAIN, id, mat_id, key + 1);
return 1;
}
else {
@@ -512,7 +515,8 @@ static void rna_IDMaterials_clear_id(ID *id, Main *bmain, int remove_material_sl
static void rna_Library_filepath_set(PointerRNA *ptr, const char *value)
{
Library *lib = (Library *)ptr->data;
- BKE_library_filepath_set(G.main, lib, value);
+ BLI_assert(BKE_id_is_in_gobal_main(&lib->id));
+ BKE_library_filepath_set(G_MAIN, lib, value);
}
/* ***** ImagePreview ***** */
diff --git a/source/blender/makesrna/intern/rna_armature.c b/source/blender/makesrna/intern/rna_armature.c
index 44a21e797f1..7e936fd1e5c 100644
--- a/source/blender/makesrna/intern/rna_armature.c
+++ b/source/blender/makesrna/intern/rna_armature.c
@@ -341,7 +341,8 @@ static void rna_EditBone_name_set(PointerRNA *ptr, const char *value)
BLI_strncpy_utf8(newname, value, sizeof(ebone->name));
BLI_strncpy(oldname, ebone->name, sizeof(ebone->name));
- ED_armature_bone_rename(G.main, arm, oldname, newname);
+ BLI_assert(BKE_id_is_in_gobal_main(&arm->id));
+ ED_armature_bone_rename(G_MAIN, arm, oldname, newname);
}
static void rna_Bone_name_set(PointerRNA *ptr, const char *value)
@@ -354,7 +355,8 @@ static void rna_Bone_name_set(PointerRNA *ptr, const char *value)
BLI_strncpy_utf8(newname, value, sizeof(bone->name));
BLI_strncpy(oldname, bone->name, sizeof(bone->name));
- ED_armature_bone_rename(G.main, arm, oldname, newname);
+ BLI_assert(BKE_id_is_in_gobal_main(&arm->id));
+ ED_armature_bone_rename(G_MAIN, arm, oldname, newname);
}
static void rna_EditBone_layer_set(PointerRNA *ptr, const int values[])
diff --git a/source/blender/makesrna/intern/rna_image.c b/source/blender/makesrna/intern/rna_image.c
index e71bd52593e..2570f88d09f 100644
--- a/source/blender/makesrna/intern/rna_image.c
+++ b/source/blender/makesrna/intern/rna_image.c
@@ -93,7 +93,8 @@ static void rna_Image_source_set(PointerRNA *ptr, int value)
if (value != ima->source) {
ima->source = value;
- BKE_image_signal(G.main, ima, NULL, IMA_SIGNAL_SRC_CHANGE);
+ BLI_assert(BKE_id_is_in_gobal_main(&ima->id));
+ BKE_image_signal(G_MAIN, ima, NULL, IMA_SIGNAL_SRC_CHANGE);
DEG_id_tag_update(&ima->id, 0);
}
}
diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c
index e44e9dc8e19..da799f9520b 100644
--- a/source/blender/makesrna/intern/rna_object.c
+++ b/source/blender/makesrna/intern/rna_object.c
@@ -327,6 +327,9 @@ static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value)
return;
}
+ BLI_assert(BKE_id_is_in_gobal_main(&ob->id));
+ BLI_assert(BKE_id_is_in_gobal_main(id));
+
if (ob->type == OB_EMPTY) {
if (ob->data) {
id_us_min((ID *)ob->data);
@@ -339,7 +342,7 @@ static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value)
}
}
else if (ob->type == OB_MESH) {
- BKE_mesh_assign_object(G.main, ob, (Mesh *)id);
+ BKE_mesh_assign_object(G_MAIN, ob, (Mesh *)id);
}
else {
if (ob->data) {
@@ -351,7 +354,7 @@ static void rna_Object_data_set(PointerRNA *ptr, PointerRNA value)
id_us_plus(id);
ob->data = id;
- test_object_materials(G.main, ob, id);
+ test_object_materials(G_MAIN, ob, id);
if (GS(id->name) == ID_CU)
BKE_curve_type_test(ob);
@@ -738,7 +741,9 @@ static void rna_Object_active_material_set(PointerRNA *ptr, PointerRNA value)
Object *ob = (Object *)ptr->id.data;
DEG_id_tag_update(value.data, 0);
- assign_material(G.main, ob, value.data, ob->actcol, BKE_MAT_ASSIGN_EXISTING);
+ BLI_assert(BKE_id_is_in_gobal_main(&ob->id));
+ BLI_assert(BKE_id_is_in_gobal_main(value.data));
+ assign_material(G_MAIN, ob, value.data, ob->actcol, BKE_MAT_ASSIGN_EXISTING);
}
static int rna_Object_active_material_editable(PointerRNA *ptr, const char **UNUSED(r_info))
@@ -930,7 +935,9 @@ static void rna_MaterialSlot_material_set(PointerRNA *ptr, PointerRNA value)
Object *ob = (Object *)ptr->id.data;
int index = (Material **)ptr->data - ob->mat;
- assign_material(G.main, ob, value.data, index + 1, BKE_MAT_ASSIGN_EXISTING);
+ BLI_assert(BKE_id_is_in_gobal_main(&ob->id));
+ BLI_assert(BKE_id_is_in_gobal_main(value.data));
+ assign_material(G_MAIN, ob, value.data, index + 1, BKE_MAT_ASSIGN_EXISTING);
}
static int rna_MaterialSlot_link_get(PointerRNA *ptr)
diff --git a/source/blender/makesrna/intern/rna_pose.c b/source/blender/makesrna/intern/rna_pose.c
index 6a5f6485029..867e7b616cd 100644
--- a/source/blender/makesrna/intern/rna_pose.c
+++ b/source/blender/makesrna/intern/rna_pose.c
@@ -292,7 +292,9 @@ static void rna_PoseChannel_name_set(PointerRNA *ptr, const char *value)
BLI_strncpy_utf8(newname, value, sizeof(pchan->name));
BLI_strncpy(oldname, pchan->name, sizeof(pchan->name));
- ED_armature_bone_rename(G.main, ob->data, oldname, newname);
+ BLI_assert(BKE_id_is_in_gobal_main(&ob->id));
+ BLI_assert(BKE_id_is_in_gobal_main(ob->data));
+ ED_armature_bone_rename(G_MAIN, ob->data, oldname, newname);
}
static int rna_PoseChannel_has_ik_get(PointerRNA *ptr)
diff --git a/source/blender/makesrna/intern/rna_screen.c b/source/blender/makesrna/intern/rna_screen.c
index e30b75b27bd..e2d9b833a4d 100644
--- a/source/blender/makesrna/intern/rna_screen.c
+++ b/source/blender/makesrna/intern/rna_screen.c
@@ -123,7 +123,7 @@ static void rna_Screen_layout_name_set(PointerRNA *ptr, const char *value)
{
bScreen *screen = ptr->data;
WorkSpace *workspace;
- WorkSpaceLayout *layout = BKE_workspace_layout_find_global(G.main, screen, &workspace);
+ WorkSpaceLayout *layout = BKE_workspace_layout_find_global(G_MAIN, screen, &workspace);
if (layout) {
BKE_workspace_layout_name_set(workspace, layout, value);
diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c
index 80bf6abc368..91515a61fcf 100644
--- a/source/blender/makesrna/intern/rna_space.c
+++ b/source/blender/makesrna/intern/rna_space.c
@@ -987,10 +987,12 @@ static void rna_SpaceImageEditor_image_set(PointerRNA *ptr, PointerRNA value)
SpaceImage *sima = (SpaceImage *)(ptr->data);
bScreen *sc = (bScreen *)ptr->id.data;
wmWindow *win;
- Scene *scene = ED_screen_scene_find_with_window(sc, G.main->wm.first, &win);
+ Scene *scene = ED_screen_scene_find_with_window(sc, G_MAIN->wm.first, &win);
ViewLayer *view_layer = WM_window_get_active_view_layer(win);
Object *obedit = OBEDIT_FROM_VIEW_LAYER(view_layer);
- ED_space_image_set(G.main, sima, scene, obedit, (Image *)value.data);
+
+ BLI_assert(BKE_id_is_in_gobal_main(value.data));
+ ED_space_image_set(G_MAIN, sima, scene, obedit, (Image *)value.data);
}
static void rna_SpaceImageEditor_mask_set(PointerRNA *ptr, PointerRNA value)
diff --git a/source/blender/python/bmesh/bmesh_py_types.c b/source/blender/python/bmesh/bmesh_py_types.c
index d32b8696c9c..394adb1dd3b 100644
--- a/source/blender/python/bmesh/bmesh_py_types.c
+++ b/source/blender/python/bmesh/bmesh_py_types.c
@@ -37,6 +37,7 @@
#include "BKE_customdata.h"
#include "BKE_DerivedMesh.h"
#include "BKE_global.h"
+#include "BKE_library.h"
#include "DEG_depsgraph.h"
@@ -903,8 +904,9 @@ static PyObject *bpy_bmesh_to_mesh(BPy_BMesh *self, PyObject *args)
bm = self->bm;
+ BLI_assert(BKE_id_is_in_gobal_main(&me->id));
BM_mesh_bm_to_me(
- G.main, /* XXX UGLY! */
+ G_MAIN, /* XXX UGLY! */
bm, me,
(&(struct BMeshToMeshParams){
.calc_object_remap = true,
diff --git a/source/blender/python/generic/bpy_internal_import.c b/source/blender/python/generic/bpy_internal_import.c
index 0211e7bd880..c1e5f947110 100644
--- a/source/blender/python/generic/bpy_internal_import.c
+++ b/source/blender/python/generic/bpy_internal_import.c
@@ -175,7 +175,7 @@ PyObject *bpy_text_import_name(const char *name, int *found)
Text *text;
char txtname[MAX_ID_NAME - 2];
int namelen = strlen(name);
-//XXX Main *maggie = bpy_import_main ? bpy_import_main:G.main;
+//XXX Main *maggie = bpy_import_main ? bpy_import_main : G_MAIN;
Main *maggie = bpy_import_main;
*found = 0;
@@ -224,7 +224,7 @@ PyObject *bpy_text_reimport(PyObject *module, int *found)
Text *text;
const char *name;
const char *filepath;
-//XXX Main *maggie = bpy_import_main ? bpy_import_main:G.main;
+//XXX Main *maggie = bpy_import_main ? bpy_import_main : G_MAIN;
Main *maggie = bpy_import_main;
if (!maggie) {
diff --git a/source/blender/python/intern/bpy.c b/source/blender/python/intern/bpy.c
index a0461ed945d..751625e378b 100644
--- a/source/blender/python/intern/bpy.c
+++ b/source/blender/python/intern/bpy.c
@@ -34,7 +34,7 @@
#include "BLI_string.h"
#include "BKE_appdir.h"
-#include "BKE_global.h" /* XXX, G.main only */
+#include "BKE_global.h" /* XXX, G_MAIN only */
#include "BKE_blender_version.h"
#include "BKE_bpath.h"
@@ -138,7 +138,7 @@ static PyObject *bpy_blend_paths(PyObject *UNUSED(self), PyObject *args, PyObjec
list = PyList_New(0);
- BKE_bpath_traverse_main(G.main, bpy_blend_paths_visit_cb, flag, (void *)list);
+ BKE_bpath_traverse_main(G_MAIN, bpy_blend_paths_visit_cb, flag, (void *)list);
return list;
}
diff --git a/source/blender/python/intern/bpy_library_write.c b/source/blender/python/intern/bpy_library_write.c
index ead10efb212..76b7ccf72fa 100644
--- a/source/blender/python/intern/bpy_library_write.c
+++ b/source/blender/python/intern/bpy_library_write.c
@@ -95,7 +95,7 @@ static PyObject *bpy_lib_write(PyObject *UNUSED(self), PyObject *args, PyObject
return NULL;
}
- Main *bmain_src = G.main;
+ Main *bmain_src = G_MAIN;
int write_flags = 0;
if (use_relative_remap) {
diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c
index aa808118613..be0e9771a0a 100644
--- a/source/blender/python/intern/bpy_rna.c
+++ b/source/blender/python/intern/bpy_rna.c
@@ -7090,7 +7090,7 @@ PyObject *BPY_rna_module(void)
PointerRNA ptr;
/* for now, return the base RNA type rather than a real module */
- RNA_main_pointer_create(G.main, &ptr);
+ RNA_main_pointer_create(G_MAIN, &ptr);
pyrna = (BPy_StructRNA *)pyrna_struct_CreatePyObject(&ptr);
rna_module_ptr = &pyrna->ptr;
@@ -7101,9 +7101,9 @@ void BPY_update_rna_module(void)
{
if (rna_module_ptr) {
#if 0
- RNA_main_pointer_create(G.main, rna_module_ptr);
+ RNA_main_pointer_create(G_MAIN, rna_module_ptr);
#else
- rna_module_ptr->data = G.main; /* just set data is enough */
+ rna_module_ptr->data = G_MAIN; /* just set data is enough */
#endif
}
}
diff --git a/source/blender/python/intern/bpy_rna_anim.c b/source/blender/python/intern/bpy_rna_anim.c
index 7903f92265b..7012e04628c 100644
--- a/source/blender/python/intern/bpy_rna_anim.c
+++ b/source/blender/python/intern/bpy_rna_anim.c
@@ -45,6 +45,7 @@
#include "BKE_fcurve.h"
#include "BKE_global.h"
#include "BKE_idcode.h"
+#include "BKE_library.h"
#include "BKE_report.h"
#include "RNA_access.h"
@@ -267,13 +268,15 @@ PyObject *pyrna_struct_keyframe_insert(BPy_StructRNA *self, PyObject *args, PyOb
return PyBool_FromLong(result);
}
else {
+ ID *id = self->ptr.id.data;
struct Depsgraph *depsgraph = CTX_data_depsgraph(BPy_GetContext());
ReportList reports;
short result;
BKE_reports_init(&reports, RPT_STORE);
- result = insert_keyframe(G.main, depsgraph, &reports, (ID *)self->ptr.id.data, NULL, group_name, path_full, index, cfra, keytype, options);
+ BLI_assert(BKE_id_is_in_gobal_main(id));
+ result = insert_keyframe(G_MAIN, depsgraph, &reports, id, NULL, group_name, path_full, index, cfra, keytype, options);
MEM_freeN((void *)path_full);
if (BPy_reports_to_error(&reports, PyExc_RuntimeError, true) == -1)
diff --git a/source/blender/python/intern/bpy_rna_id_collection.c b/source/blender/python/intern/bpy_rna_id_collection.c
index ee40d30d73b..4806c2266ba 100644
--- a/source/blender/python/intern/bpy_rna_id_collection.c
+++ b/source/blender/python/intern/bpy_rna_id_collection.c
@@ -160,7 +160,7 @@ static PyObject *bpy_user_map(PyObject *UNUSED(self), PyObject *args, PyObject *
BPy_StructRNA *pyrna = (BPy_StructRNA *)self;
Main *bmain = pyrna->ptr.data;
#else
- Main *bmain = G.main; /* XXX Ugly, but should work! */
+ Main *bmain = G_MAIN; /* XXX Ugly, but should work! */
#endif
PyObject *subset = NULL;
@@ -230,7 +230,6 @@ static PyObject *bpy_user_map(PyObject *UNUSED(self), PyObject *args, PyObject *
lb_index = set_listbasepointers(bmain, lb_array);
while (lb_index--) {
-
if (val_types_bitmap && lb_array[lb_index]->first) {
if (!id_check_type(lb_array[lb_index]->first, val_types_bitmap)) {
continue;
diff --git a/source/blender/python/intern/gpu_offscreen.c b/source/blender/python/intern/gpu_offscreen.c
index a65469ea739..f0bc4b79296 100644
--- a/source/blender/python/intern/gpu_offscreen.c
+++ b/source/blender/python/intern/gpu_offscreen.c
@@ -36,6 +36,7 @@
#include "WM_types.h"
#include "BKE_global.h"
+#include "BKE_library.h"
#include "ED_screen.h"
@@ -195,6 +196,8 @@ static PyObject *pygpu_offscreen_draw_view3d(BPy_GPUOffScreen *self, PyObject *a
return NULL;
}
+ BLI_assert(BKE_id_is_in_gobal_main(&scene->id));
+
fx = GPU_fx_compositor_create();
fx_settings = v3d->fx_settings; /* full copy */