Fix for crash when loading some mango files

Seems that issue is caused by several threads accessing to movie clip and one
of the threads (compositor node) was editing ImBuf which isn't nice anyway.
This commit is contained in:
Sergey Sharybin
2012-03-06 13:57:28 +00:00
parent 3882f7cde7
commit c6f7c97daa

View File

@@ -44,20 +44,23 @@ static bNodeSocketTemplate cmp_node_movieclip_out[]= {
static CompBuf *node_composit_get_movieclip(RenderData *rd, MovieClip *clip, MovieClipUser *user)
{
ImBuf *ibuf;
ImBuf *orig_ibuf, *ibuf;
CompBuf *stackbuf;
int type;
float *rect;
int alloc= FALSE;
ibuf= BKE_movieclip_get_ibuf(clip, user);
orig_ibuf= BKE_movieclip_get_ibuf(clip, user);
if(ibuf==NULL || (ibuf->rect==NULL && ibuf->rect_float==NULL)) {
IMB_freeImBuf(ibuf);
if(orig_ibuf==NULL || (orig_ibuf->rect==NULL && orig_ibuf->rect_float==NULL)) {
IMB_freeImBuf(orig_ibuf);
return NULL;
}
ibuf= IMB_dupImBuf(orig_ibuf);
IMB_freeImBuf(orig_ibuf);
if (ibuf->rect_float == NULL || ibuf->userflags&IB_RECT_INVALID) {
IMB_float_from_rect(ibuf);
ibuf->userflags&= ~IB_RECT_INVALID;