[Bf-blender-cvs] [42b2c47] master: Fix T47643: Blender crash. Linked speaker issue.
Bastien Montagne
noreply at git.blender.org
Tue Mar 1 18:10:15 CET 2016
Commit: 42b2c47386ef3c9f4db5654a9920bf2fbbe4e632
Author: Bastien Montagne
Date: Tue Mar 1 18:09:22 2016 +0100
Branches: master
https://developer.blender.org/rB42b2c47386ef3c9f4db5654a9920bf2fbbe4e632
Fix T47643: Blender crash. Linked speaker issue.
Speaker's localization func would not make direct-linked its used sound datablock...
===================================================================
M source/blender/blenkernel/intern/speaker.c
===================================================================
diff --git a/source/blender/blenkernel/intern/speaker.c b/source/blender/blenkernel/intern/speaker.c
index 3b5b8ce..c452065 100644
--- a/source/blender/blenkernel/intern/speaker.c
+++ b/source/blender/blenkernel/intern/speaker.c
@@ -81,6 +81,11 @@ Speaker *BKE_speaker_copy(Speaker *spk)
return spkn;
}
+static void extern_local_speaker(Speaker *spk)
+{
+ id_lib_extern((ID *)spk->sound);
+}
+
void BKE_speaker_make_local(Speaker *spk)
{
Main *bmain = G.main;
@@ -95,6 +100,7 @@ void BKE_speaker_make_local(Speaker *spk)
if (spk->id.lib == NULL) return;
if (spk->id.us == 1) {
id_clear_lib_data(bmain, &spk->id);
+ extern_local_speaker(spk);
return;
}
@@ -109,6 +115,7 @@ void BKE_speaker_make_local(Speaker *spk)
if (is_local && is_lib == false) {
id_clear_lib_data(bmain, &spk->id);
+ extern_local_speaker(spk);
}
else if (is_local && is_lib) {
Speaker *spk_new = BKE_speaker_copy(spk);
More information about the Bf-blender-cvs
mailing list