Mercurial > love-experiments
diff src/modules/image/devil/ImageData.cpp @ 1391:a742f6edaf92
Fixed filedata not being cleaned up when love.image.newImageData(filepath) fails
| author | Alex Szpakowski <slime73@gmail.com> |
|---|---|
| date | Tue, 19 Mar 2013 09:01:15 -0300 |
| parents | 730ed5f01ab0 |
| children | d46820870f0a |
line wrap: on
line diff
--- a/src/modules/image/devil/ImageData.cpp Mon Mar 18 22:55:41 2013 -0300 +++ b/src/modules/image/devil/ImageData.cpp Tue Mar 19 09:01:15 2013 -0300 @@ -53,7 +53,15 @@ ImageData::ImageData(filesystem::File *file) { Data *data = file->read(); - load(data); + try + { + load(data); + } + catch (love::Exception &) + { + data->release(); + throw; + } data->release(); } @@ -124,10 +132,10 @@ create(width, height, ilGetData()); } - catch(std::exception &) + catch(std::exception &e) { ilDeleteImages(1, &image); - throw; + throw love::Exception("%s", e.what()); } ilDeleteImages(1, &image);
