Commits

Bart van Strien committed 8ad1cf6

Prevent old DevIL errors from causing love errors

Comments (0)

Files changed (1)

src/modules/image/devil/ImageData.cpp

 
 		bool success = (ilTexImage(width, height, 1, bpp, IL_RGBA, IL_UNSIGNED_BYTE, 0) == IL_TRUE);
 		int err = ilGetError();
-		if (err != IL_NO_ERROR){
-			switch (err) {
-				case IL_ILLEGAL_OPERATION:
-					throw love::Exception("Error: Illegal operation");
-					break;
-				case IL_INVALID_PARAM:
-					throw love::Exception("Error: invalid parameters");
-					break;
-				case IL_OUT_OF_MEMORY:
-					throw love::Exception("Error: out of memory");
-					break;
-				default:
-					throw love::Exception("Error: unknown error");
-					break;
-			}
-		}
 
 		if(!success) {
+			if (err != IL_NO_ERROR){
+				switch (err) {
+					case IL_ILLEGAL_OPERATION:
+						throw love::Exception("Error: Illegal operation");
+						break;
+					case IL_INVALID_PARAM:
+						throw love::Exception("Error: invalid parameters");
+						break;
+					case IL_OUT_OF_MEMORY:
+						throw love::Exception("Error: out of memory");
+						break;
+					default:
+						throw love::Exception("Error: unknown error");
+						break;
+				}
+			}
 			throw love::Exception("Could not decode image data.");
 		}
 
 		ilBindImage(image);
 		// Try to load the data.
 		bool success = (ilTexImage(width, height, 1, bpp, IL_RGBA, IL_UNSIGNED_BYTE, data) == IL_TRUE);
-		int err = ilGetError();
-		if (err != IL_NO_ERROR){
-			switch (err) {
-				case IL_ILLEGAL_OPERATION:
-					throw love::Exception("Error: Illegal operation");
-					break;
-				case IL_INVALID_PARAM:
-					throw love::Exception("Error: invalid parameters");
-					break;
-				case IL_OUT_OF_MEMORY:
-					throw love::Exception("Error: out of memory");
-					break;
-				default:
-					throw love::Exception("Error: unknown error");
-					break;
-			}
-		}
 
 		if(!success) {
+			if (err != IL_NO_ERROR){
+				switch (err) {
+					case IL_ILLEGAL_OPERATION:
+						throw love::Exception("Error: Illegal operation");
+						break;
+					case IL_INVALID_PARAM:
+						throw love::Exception("Error: invalid parameters");
+						break;
+					case IL_OUT_OF_MEMORY:
+						throw love::Exception("Error: out of memory");
+						break;
+					default:
+						throw love::Exception("Error: unknown error");
+						break;
+				}
+			}
 			throw love::Exception("Could not decode image data.");
 		}
 	}