diff options
| author | Simon Robertshaw <simon@hardwired.org.uk> | 2013-03-14 12:10:56 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2013-03-14 12:10:56 (GMT) |
| commit | 6b68c04cd613847e4f2bbe1f0cd8a2a13a9d4660 (patch) | |
| tree | 73a6e42d5c6ac2e62e0812c8b83936506c05c659 /src/client/requestbroker/ImageRequest.cpp | |
| parent | 9ab70756af4fb3f0f9c4e287f1b30e0897a19741 (diff) | |
| download | powder-6b68c04cd613847e4f2bbe1f0cd8a2a13a9d4660.zip powder-6b68c04cd613847e4f2bbe1f0cd8a2a13a9d4660.tar.gz | |
Fix multiple free after merging multiple request objects
Diffstat (limited to 'src/client/requestbroker/ImageRequest.cpp')
| -rw-r--r-- | src/client/requestbroker/ImageRequest.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/client/requestbroker/ImageRequest.cpp b/src/client/requestbroker/ImageRequest.cpp index 6e4f66c..778d8b6 100644 --- a/src/client/requestbroker/ImageRequest.cpp +++ b/src/client/requestbroker/ImageRequest.cpp @@ -115,11 +115,14 @@ RequestBroker::ProcessResponse ImageRequest::Process(RequestBroker & rb) { //Create a copy, to seperate from the cache + std::vector<Request *> children(Children.begin(), Children.end()); + Children.clear(); + VideoBuffer * myVB = new VideoBuffer(*image); myVB->Resize(Width, Height, true); ResultObject = (void*)myVB; rb.requestComplete(this); - for(std::vector<Request*>::iterator childIter = Children.begin(), childEnd = Children.end(); childIter != childEnd; ++childIter) + for(std::vector<Request*>::iterator childIter = children.begin(), childEnd = children.end(); childIter != childEnd; ++childIter) { if((*childIter)->Type == Request::Image) { |
