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:
authorBastien Montagne <montagne29@wanadoo.fr>2016-09-30 11:11:29 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2016-09-30 11:14:12 +0300
commit85d543b4acb35750ea81e12cc7c1cc5db55ce361 (patch)
tree14f1ce8439c89450b320ff762d339f660bfa9df4 /source/blender/blenkernel/intern/library_query.c
parent396a6d8a86f265c5fbb437b498b708a2f687a6f2 (diff)
Fix T49489: Pose marker in camera action + marker bound to camera -> crash.
'camera' Object pointer of TimeMarkers is a 'temp' hack since Durian project... Would need to be either made definitive now, or removed/reworked/whatever. But since we intend to use that object pointer for other needs, and current code could lead to crashing .blend files, for now let's fix that mess (was missing some bits in read code, and also totally ignored in libquery code). Should be safe for 2.78a.
Diffstat (limited to 'source/blender/blenkernel/intern/library_query.c')
-rw-r--r--source/blender/blenkernel/intern/library_query.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/library_query.c b/source/blender/blenkernel/intern/library_query.c
index 392ac68150e..718950624e2 100644
--- a/source/blender/blenkernel/intern/library_query.c
+++ b/source/blender/blenkernel/intern/library_query.c
@@ -378,6 +378,10 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
CALLBACK_INVOKE(base->object, IDWALK_USER);
}
+ for (TimeMarker *marker = scene->markers.first; marker; marker = marker->next) {
+ CALLBACK_INVOKE(marker->camera, IDWALK_NOP);
+ }
+
if (toolsett) {
CALLBACK_INVOKE(toolsett->skgen_template, IDWALK_NOP);
@@ -842,6 +846,15 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
}
break;
}
+ case ID_AC:
+ {
+ bAction *act = (bAction *) id;
+
+ for (TimeMarker *marker = act->markers.first; marker; marker = marker->next) {
+ CALLBACK_INVOKE(marker->camera, IDWALK_NOP);
+ }
+ break;
+ }
/* Nothing needed for those... */
case ID_IM:
@@ -849,7 +862,6 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
case ID_TXT:
case ID_SO:
case ID_AR:
- case ID_AC:
case ID_GD:
case ID_WM:
case ID_PAL: