Hey Aligorith, I'll have a go at fixing this, otherwise I'll comment out with some warning/printf that memory is being leaked and the bug is known.
On Mon, Feb 15, 2010 at 2:41 AM, Joshua Leung <aligor...@gmail.com> wrote: > Hi Campbell, > > This fix causes problems with animated nodes. > > The bugreport from venomgfx: > "open blender > Shift+F3 > IKEY over the alpha slider, click anywhere.. > crash" (this is on the output node) > > >From what I remember from trying to fix some bugs with the active node > getting deselected/cleared immediately after being set, the problem is that > a copy of the entire nodetree is made for every thread that does > threaded/background compositing. This is results in many unpredicted > consequences for the node API functions, such as this one. > > I'm not entirely sure what's going on here in this case though. Looks like > the copying of animdata isn't happening (despite that being supposedly done > on libblock level). For now, any users with this problem should just comment > out the fix/changes here in node.c. > > > Anyways, this is just a heads-up about this problem. I could investigate > this further if the schedule over at the BI is too tight, otherwise, this'll > have to wait till I get a few other pending issues sorted first :) > > Regards, > Aligorith > > On Sun, Feb 14, 2010 at 2:38 AM, Campbell Barton <ideasma...@gmail.com>wrote: > >> Revision: 26869 >> >> http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26869 >> Author: campbellbarton >> Date: 2010-02-13 14:38:10 +0100 (Sat, 13 Feb 2010) >> >> Log Message: >> ----------- >> fix for memory leak: node animation data wasnt being free'd >> >> also some corrections to memory debug stuff. >> >> Modified Paths: >> -------------- >> trunk/blender/intern/guardedalloc/intern/mallocn.c >> trunk/blender/source/blender/blenkernel/intern/node.c >> trunk/blender/source/blender/blenloader/intern/readfile.c >> >> Modified: trunk/blender/intern/guardedalloc/intern/mallocn.c >> =================================================================== >> --- trunk/blender/intern/guardedalloc/intern/mallocn.c 2010-02-13 13:17:15 >> UTC (rev 26868) >> +++ trunk/blender/intern/guardedalloc/intern/mallocn.c 2010-02-13 13:38:10 >> UTC (rev 26869) >> @@ -305,9 +305,9 @@ >> memset(memh+1, 255, len); >> >> #ifdef DEBUG_MEMCOUNTER >> - memh->_count= _mallocn_count++; >> if(_mallocn_count==DEBUG_MEMCOUNTER_ERROR_VAL) >> memcount_raise("MEM_mallocN"); >> + memh->_count= _mallocn_count++; >> #endif >> return (++memh); >> } >> @@ -330,9 +330,9 @@ >> make_memhead_header(memh, len, str); >> mem_unlock_thread(); >> #ifdef DEBUG_MEMCOUNTER >> - memh->_count= _mallocn_count++; >> if(_mallocn_count==DEBUG_MEMCOUNTER_ERROR_VAL) >> memcount_raise("MEM_callocN"); >> + memh->_count= _mallocn_count++; >> #endif >> return (++memh); >> } >> @@ -372,9 +372,9 @@ >> mmap_in_use += len; >> mem_unlock_thread(); >> #ifdef DEBUG_MEMCOUNTER >> - memh->_count= _mallocn_count++; >> if(_mallocn_count==DEBUG_MEMCOUNTER_ERROR_VAL) >> memcount_raise("MEM_mapallocN"); >> + memh->_count= _mallocn_count++; >> #endif >> return (++memh); >> } >> >> Modified: trunk/blender/source/blender/blenkernel/intern/node.c >> =================================================================== >> --- trunk/blender/source/blender/blenkernel/intern/node.c 2010-02-13 >> 13:17:15 UTC (rev 26868) >> +++ trunk/blender/source/blender/blenkernel/intern/node.c 2010-02-13 >> 13:38:10 UTC (rev 26869) >> @@ -57,6 +57,7 @@ >> #include "BKE_texture.h" >> #include "BKE_text.h" >> #include "BKE_utildefines.h" >> +#include "BKE_animsys.h" /* BKE_free_animdata only */ >> >> #include "BLI_math.h" >> #include "BLI_blenlib.h" >> @@ -1343,6 +1344,8 @@ >> >> ntreeEndExecTree(ntree); /* checks for if it is still >> initialized */ >> >> + BKE_free_animdata((ID *)ntree); >> + >> BLI_freelistN(&ntree->links); /* do first, then unlink_node goes >> fast */ >> >> for(node= ntree->nodes.first; node; node= next) { >> >> Modified: trunk/blender/source/blender/blenloader/intern/readfile.c >> =================================================================== >> --- trunk/blender/source/blender/blenloader/intern/readfile.c 2010-02-13 >> 13:17:15 UTC (rev 26868) >> +++ trunk/blender/source/blender/blenloader/intern/readfile.c 2010-02-13 >> 13:38:10 UTC (rev 26869) >> @@ -5307,7 +5307,7 @@ >> >> while(bhead && bhead->code==DATA) { >> void *data; >> -#if 0 >> +#if 0 >> /* XXX DUMB DEBUGGING OPTION TO GIVE NAMES for guarded >> malloc errors */ >> short *sp= fd->filesdna->structs[bhead->SDNAnr]; >> char *allocname = fd->filesdna->types[ sp[0] ]; >> @@ -5315,8 +5315,9 @@ >> >> strcpy(tmp, allocname); >> data= read_struct(fd, bhead, tmp); >> +#else >> + data= read_struct(fd, bhead, allocname); >> #endif >> - data= read_struct(fd, bhead, allocname); >> >> if (data) { >> oldnewmap_insert(fd->datamap, bhead->old, data, 0); >> >> >> _______________________________________________ >> Bf-blender-cvs mailing list >> bf-blender-...@blender.org >> http://lists.blender.org/mailman/listinfo/bf-blender-cvs >> > _______________________________________________ > Bf-committers mailing list > Bf-committers@blender.org > http://lists.blender.org/mailman/listinfo/bf-committers > -- - Campbell _______________________________________________ Bf-committers mailing list Bf-committers@blender.org http://lists.blender.org/mailman/listinfo/bf-committers