diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2018-06-22 13:46:16 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2018-06-22 13:46:16 +0300 |
commit | 646412004b1da5d6b7b831a5a49022d1fd138e0b (patch) | |
tree | c3e2ba99cd4eb8ea312a59efd4ed7a8e9c1c7f28 /source | |
parent | b6b7c83dd8e4838d4819c25d95dd01cacf81c8d8 (diff) | |
parent | 2fe528424d168f124efca5d94c6b0363be49dbf3 (diff) |
Merge branch 'master' into blender2.8
Conflicts:
source/blender/makesrna/intern/rna_image.c
source/blender/makesrna/intern/rna_object.c
source/blender/makesrna/intern/rna_object_force.c
source/blender/makesrna/intern/rna_screen.c
source/blender/makesrna/intern/rna_sculpt_paint.c
source/blender/makesrna/intern/rna_space.c
source/blender/python/bmesh/bmesh_py_types.c
source/blender/python/generic/bpy_internal_import.h
source/blender/python/intern/bpy_rna_anim.c
source/blender/python/intern/gpu_offscreen.c
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/BKE_library.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/library.c | 8 | ||||
-rw-r--r-- | source/blender/editors/mesh/editmesh_bevel.c | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_ID.c | 10 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_armature.c | 6 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_image.c | 3 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_object.c | 15 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_pose.c | 4 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_screen.c | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_space.c | 6 | ||||
-rw-r--r-- | source/blender/python/bmesh/bmesh_py_types.c | 4 | ||||
-rw-r--r-- | source/blender/python/generic/bpy_internal_import.c | 4 | ||||
-rw-r--r-- | source/blender/python/intern/bpy.c | 4 | ||||
-rw-r--r-- | source/blender/python/intern/bpy_library_write.c | 2 | ||||
-rw-r--r-- | source/blender/python/intern/bpy_rna.c | 6 | ||||
-rw-r--r-- | source/blender/python/intern/bpy_rna_anim.c | 5 | ||||
-rw-r--r-- | source/blender/python/intern/bpy_rna_id_collection.c | 3 | ||||
-rw-r--r-- | source/blender/python/intern/gpu_offscreen.c | 3 |
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 */ |