[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29021] trunk/blender/source/blender/ blenkernel/intern/sca.c: Logic Editor: fix for datablock counting when copying/deleting sound actuator

Dalai Felinto dfelinto at gmail.com
Thu May 27 10:34:32 CEST 2010


Revision: 29021
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29021
Author:   dfelinto
Date:     2010-05-27 10:34:32 +0200 (Thu, 27 May 2010)

Log Message:
-----------
Logic Editor: fix for datablock counting when copying/deleting sound actuator
("bug" from 2.49)

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/sca.c

Modified: trunk/blender/source/blender/blenkernel/intern/sca.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sca.c	2010-05-27 08:22:16 UTC (rev 29020)
+++ trunk/blender/source/blender/blenkernel/intern/sca.c	2010-05-27 08:34:32 UTC (rev 29021)
@@ -44,6 +44,7 @@
 #include "BKE_utildefines.h"
 #include "BKE_global.h"
 #include "BKE_main.h"
+#include "BKE_library.h"
 
 /* ******************* SENSORS ************************ */
 
@@ -348,7 +349,19 @@
 
 void free_actuator(bActuator *act)
 {
-	if(act->data) MEM_freeN(act->data);
+	bSoundActuator *sa;
+
+	if(act->data) {
+		switch (act->type) {
+			case ACT_SOUND:
+				sa = (bSoundActuator *) act->data;
+                        	if(sa->sound)
+                                	id_us_min((ID *) sa->sound);
+                	        break;
+        	}
+
+		MEM_freeN(act->data);
+	}
 	MEM_freeN(act);
 }
 
@@ -365,6 +378,7 @@
 bActuator *copy_actuator(bActuator *act)
 {
 	bActuator *actn;
+	bSoundActuator *sa;
 	
 	act->mynew=actn= MEM_dupallocN(act);
 	actn->flag |= ACT_NEW;
@@ -372,6 +386,13 @@
 		actn->data= MEM_dupallocN(act->data);
 	}
 	
+	switch (act->type) {
+		case ACT_SOUND:
+			sa= (bSoundActuator *)act->data;
+			if(sa->sound)
+				id_us_plus((ID *) sa->sound);
+			break;
+	}
 	return actn;
 }
 





More information about the Bf-blender-cvs mailing list