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:
authorSergey Sharybin <sergey.vfx@gmail.com>2012-08-05 13:31:48 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2012-08-05 13:31:48 +0400
commitca382a8d2a5093d139859f39e26337f92b94d151 (patch)
treeca24530f1af2c351cf985657ebc4e517fc7fcf43 /source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
parent9be74a514b4d74c28f575e608938a9ad24962517 (diff)
Fix for keying screen incorrect memory write when some of tracks are disabled.
Diffstat (limited to 'source/blender/compositor/operations/COM_KeyingScreenOperation.cpp')
-rw-r--r--source/blender/compositor/operations/COM_KeyingScreenOperation.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp b/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
index 33bdd892fe8..050aa3391d5 100644
--- a/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
+++ b/source/blender/compositor/operations/COM_KeyingScreenOperation.cpp
@@ -78,7 +78,7 @@ KeyingScreenOperation::TriangulationData *KeyingScreenOperation::buildVoronoiTri
TriangulationData *triangulation;
MovieTracking *tracking = &this->m_movieClip->tracking;
MovieTrackingTrack *track;
- VoronoiSite *sites;
+ VoronoiSite *sites, *site;
ImBuf *ibuf;
ListBase *tracksbase;
ListBase edges = {NULL, NULL};
@@ -131,9 +131,8 @@ KeyingScreenOperation::TriangulationData *KeyingScreenOperation::buildVoronoiTri
sites = (VoronoiSite *) MEM_callocN(sizeof(VoronoiSite) * sites_total, "keyingscreen voronoi sites");
track = (MovieTrackingTrack *) tracksbase->first;
- for (track = (MovieTrackingTrack *) tracksbase->first, i = 0; track; track = track->next, i++) {
+ for (track = (MovieTrackingTrack *) tracksbase->first, site = sites; track; track = track->next) {
MovieTrackingMarker *marker = BKE_tracking_marker_get(track, clip_frame);
- VoronoiSite *site;
ImBuf *pattern_ibuf;
int j;
float pos[2];
@@ -149,8 +148,6 @@ KeyingScreenOperation::TriangulationData *KeyingScreenOperation::buildVoronoiTri
continue;
}
- site = &sites[i];
-
pattern_ibuf = BKE_tracking_get_pattern_imbuf(ibuf, track, marker, TRUE, FALSE);
zero_v3(site->color);
@@ -172,6 +169,8 @@ KeyingScreenOperation::TriangulationData *KeyingScreenOperation::buildVoronoiTri
site->co[0] = pos[0] * width;
site->co[1] = pos[1] * height;
+
+ site++;
}
IMB_freeImBuf(ibuf);