[pure-lang-svn] SF.net SVN: pure-lang: [93] pure/trunk/runtime.cc
Status: Beta
Brought to you by:
agraef
From: <ag...@us...> - 2008-05-17 12:43:30
|
Revision: 93 http://pure-lang.svn.sourceforge.net/pure-lang/?rev=93&view=rev Author: agraef Date: 2008-05-17 05:43:37 -0700 (Sat, 17 May 2008) Log Message: ----------- Optimize argument refcounting in pure_apply. Modified Paths: -------------- pure/trunk/runtime.cc Modified: pure/trunk/runtime.cc =================================================================== --- pure/trunk/runtime.cc 2008-05-17 12:39:04 UTC (rev 92) +++ pure/trunk/runtime.cc 2008-05-17 12:43:37 UTC (rev 93) @@ -453,8 +453,10 @@ } // collect arguments f = x; - for (size_t j = 1; f->tag == EXPR::APP; j++, f = f->data.x[0]) - argv[i+n-j] = pure_new_internal(f->data.x[1]); + for (size_t j = 1; f->tag == EXPR::APP; j++, f = f->data.x[0]) { + assert(f->data.x[1]->refc > 0); + argv[i+n-j] = f->data.x[1]; f->data.x[1]->refc++; + } i += n; argv[i++] = y; assert(i == k); pure_free_internal(x); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |