From: <br...@us...> - 2007-05-16 06:06:09
|
Revision: 14223 http://bzflag.svn.sourceforge.net/bzflag/?rev=14223&view=rev Author: brlcad Date: 2007-05-15 23:06:06 -0700 (Tue, 15 May 2007) Log Message: ----------- wimpy attempt at taking care of a leaky jobs vector, where presumably the handler's are getting lost after a clear() since each job is just added with a push_back() and no regard to that pointer. Modified Paths: -------------- trunk/bzflag/src/bzfs/bzfsAPI.cxx Modified: trunk/bzflag/src/bzfs/bzfsAPI.cxx =================================================================== --- trunk/bzflag/src/bzfs/bzfsAPI.cxx 2007-05-16 05:57:43 UTC (rev 14222) +++ trunk/bzflag/src/bzfs/bzfsAPI.cxx 2007-05-16 06:06:06 UTC (rev 14223) @@ -2865,10 +2865,11 @@ return ; trURLJob job; - job.url=URL; - job.handler=handler; - if(_postData) - job.postData=_postData; + job.url = URL; + job.handler = handler; + if(_postData) { + job.postData = _postData; + } jobs.push_back(job); @@ -2879,26 +2880,30 @@ void removeJob(const char *URL) { if(!URL) - return ; + return; - std::string url=URL; + std::string url = URL; - for(unsigned int i=0; i < jobs.size(); i++) - { - if(jobs[i].url==url) - { - if(i==0) - { + for (unsigned int i=0; i < jobs.size(); i++) { + if (jobs[i].url == url) { + if (i == 0) { removeHandle(); } - jobs.erase(jobs.begin()+i); - i=jobs.size()+1; + jobs.erase(jobs.begin() + i); + i = jobs.size() + 1; } } } void flush(void) { + for(unsigned int i=0; i < jobs.size(); i++) { + /* fugly, but should clean up better */ + removeJob(jobs[i].url.c_str()); + /* who owns this handler? do we need to delete it?? */ + delete jobs[i].handler; + jobs[i].handler = NULL; + } removeHandle(); jobs.clear(); doingStuff=false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |