[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17145] trunk/blender/source/blender/src/ keyframing.c: Bugfix:
Joshua Leung
aligorith at gmail.com
Tue Oct 21 10:30:02 CEST 2008
Revision: 17145
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17145
Author: aligorith
Date: 2008-10-21 10:30:02 +0200 (Tue, 21 Oct 2008)
Log Message:
-----------
Bugfix:
"Warning: binarysearch_bezt_index encountered invalid array" errors were being displayed in the console. Was caused by 3d-view show-keyframe for infostring stuff, when an IPO being checked had no keyframes.
Modified Paths:
--------------
trunk/blender/source/blender/src/keyframing.c
Modified: trunk/blender/source/blender/src/keyframing.c
===================================================================
--- trunk/blender/source/blender/src/keyframing.c 2008-10-21 08:27:38 UTC (rev 17144)
+++ trunk/blender/source/blender/src/keyframing.c 2008-10-21 08:30:02 UTC (rev 17145)
@@ -1920,18 +1920,21 @@
* - this assumes that keyframes are only beztriples
*/
for (icu= ipo->curve.first; icu; icu= icu->next) {
- /* we either include all regardless of muting, or only non-muted */
- if ((filter & ANIMFILTER_MUTED) || (icu->flag & IPO_MUTE)==0) {
- short replace = -1;
- int i = binarysearch_bezt_index(icu->bezt, frame, icu->totvert, &replace);
-
- /* binarysearch_bezt_index will set replace to be 0 or 1
- * - obviously, 1 represents a match
- */
- if (replace) {
- /* sanity check: 'i' may in rare cases exceed arraylen */
- if ((i >= 0) && (i < icu->totvert))
- return 1;
+ /* only check if there are keyframes (currently only of type BezTriple) */
+ if (icu->bezt) {
+ /* we either include all regardless of muting, or only non-muted */
+ if ((filter & ANIMFILTER_MUTED) || (icu->flag & IPO_MUTE)==0) {
+ short replace = -1;
+ int i = binarysearch_bezt_index(icu->bezt, frame, icu->totvert, &replace);
+
+ /* binarysearch_bezt_index will set replace to be 0 or 1
+ * - obviously, 1 represents a match
+ */
+ if (replace) {
+ /* sanity check: 'i' may in rare cases exceed arraylen */
+ if ((i >= 0) && (i < icu->totvert))
+ return 1;
+ }
}
}
}
More information about the Bf-blender-cvs
mailing list