]> git.saurik.com Git - android/aapt.git/commitdiff
aapt now attempts to process all assets even if some are malformed.
authorDaniel Sandler <dsandler@google.com>
Fri, 14 Aug 2009 20:47:30 +0000 (13:47 -0700)
committerDaniel Sandler <dsandler@google.com>
Mon, 17 Aug 2009 14:55:47 +0000 (10:55 -0400)
Previously aapt would bail out on the first broken image, making it difficult to compile a comprehensive list of broken images.  Now it will pre- and post-process all of them and report any and all errors (before exiting with an error code if any errors were encountered).

Bug: 2055485

Resource.cpp

index 1fa7b18b11ab8986f6eb467174887ed6713b3ff5..9a5127d20b8e9f4c2412e64f176ecd781f717321 100644 (file)
@@ -272,15 +272,16 @@ static status_t preProcessImages(Bundle* bundle, const sp<AaptAssets>& assets,
     ResourceDirIterator it(set, String8("drawable"));
     Vector<sp<AaptFile> > newNameFiles;
     Vector<String8> newNamePaths;
+    bool hasErrors = false;
     ssize_t res;
     while ((res=it.next()) == NO_ERROR) {
         res = preProcessImage(bundle, assets, it.getFile(), NULL);
-        if (res != NO_ERROR) {
-            return res;
+        if (res < NO_ERROR) {
+            hasErrors = true;
         }
     }
 
-    return NO_ERROR;
+    return (hasErrors || (res < NO_ERROR)) ? UNKNOWN_ERROR : NO_ERROR;
 }
 
 status_t postProcessImages(const sp<AaptAssets>& assets,
@@ -288,15 +289,16 @@ status_t postProcessImages(const sp<AaptAssets>& assets,
                            const sp<ResourceTypeSet>& set)
 {
     ResourceDirIterator it(set, String8("drawable"));
+    bool hasErrors = false;
     ssize_t res;
     while ((res=it.next()) == NO_ERROR) {
         res = postProcessImage(assets, table, it.getFile());
-        if (res != NO_ERROR) {
-            return res;
+        if (res < NO_ERROR) {
+            hasErrors = true;
         }
     }
 
-    return res < NO_ERROR ? res : (status_t)NO_ERROR;
+    return (hasErrors || (res < NO_ERROR)) ? UNKNOWN_ERROR : NO_ERROR;
 }
 
 static void collect_files(const sp<AaptDir>& dir,