Loading tools/aapt/Bundle.h +4 −4 Original line number Diff line number Diff line Loading @@ -83,7 +83,7 @@ public: bool getForce(void) const { return mForce; } void setForce(bool val) { mForce = val; } void setGrayscaleTolerance(int val) { mGrayscaleTolerance = val; } int getGrayscaleTolerance() { return mGrayscaleTolerance; } int getGrayscaleTolerance() const { return mGrayscaleTolerance; } bool getMakePackageDirs(void) const { return mMakePackageDirs; } void setMakePackageDirs(bool val) { mMakePackageDirs = val; } bool getUpdate(void) const { return mUpdate; } Loading Loading @@ -166,14 +166,14 @@ public: void setExtraPackages(const char* val) { mExtraPackages = val; } const char* getMaxResVersion() const { return mMaxResVersion; } void setMaxResVersion(const char * val) { mMaxResVersion = val; } bool getDebugMode() { return mDebugMode; } bool getDebugMode() const { return mDebugMode; } void setDebugMode(bool val) { mDebugMode = val; } bool getNonConstantId() { return mNonConstantId; } bool getNonConstantId() const { return mNonConstantId; } void setNonConstantId(bool val) { mNonConstantId = val; } const char* getProduct() const { return mProduct; } void setProduct(const char * val) { mProduct = val; } void setUseCrunchCache(bool val) { mUseCrunchCache = val; } bool getUseCrunchCache() { return mUseCrunchCache; } bool getUseCrunchCache() const { return mUseCrunchCache; } /* * Set and get the file specification. Loading tools/aapt/Images.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -964,7 +964,7 @@ static void write_png(const char* imageName, compression_type)); } status_t preProcessImage(Bundle* bundle, const sp<AaptAssets>& assets, status_t preProcessImage(const Bundle* bundle, const sp<AaptAssets>& assets, const sp<AaptFile>& file, String8* outNewLeafName) { String8 ext(file->getPath().getPathExtension()); Loading Loading @@ -1084,7 +1084,7 @@ bail: return error; } status_t preProcessImageToCache(Bundle* bundle, String8 source, String8 dest) status_t preProcessImageToCache(const Bundle* bundle, const String8& source, const String8& dest) { png_structp read_ptr = NULL; png_infop read_info = NULL; Loading tools/aapt/Images.h +2 −2 Original line number Diff line number Diff line Loading @@ -15,10 +15,10 @@ using android::String8; status_t preProcessImage(Bundle* bundle, const sp<AaptAssets>& assets, status_t preProcessImage(const Bundle* bundle, const sp<AaptAssets>& assets, const sp<AaptFile>& file, String8* outNewLeafName); status_t preProcessImageToCache(Bundle* bundle, String8 source, String8 dest); status_t preProcessImageToCache(const Bundle* bundle, const String8& source, const String8& dest); status_t postProcessImage(const sp<AaptAssets>& assets, ResourceTable* table, const sp<AaptFile>& file); Loading tools/aapt/Resource.cpp +42 −6 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ #include "FileFinder.h" #include "CacheUpdater.h" #include <utils/WorkQueue.h> #if HAVE_PRINTF_ZD # define ZD "%zd" # define ZD_TYPE ssize_t Loading @@ -24,6 +26,9 @@ #define NOISY(x) // x // Number of threads to use for preprocessing images. static const size_t MAX_THREADS = 4; // ========================================================================== // ========================================================================== // ========================================================================== Loading Loading @@ -302,21 +307,52 @@ static status_t makeFileResources(Bundle* bundle, const sp<AaptAssets>& assets, return hasErrors ? UNKNOWN_ERROR : NO_ERROR; } static status_t preProcessImages(Bundle* bundle, const sp<AaptAssets>& assets, class PreProcessImageWorkUnit : public WorkQueue::WorkUnit { public: PreProcessImageWorkUnit(const Bundle* bundle, const sp<AaptAssets>& assets, const sp<AaptFile>& file, volatile bool* hasErrors) : mBundle(bundle), mAssets(assets), mFile(file), mHasErrors(hasErrors) { } virtual bool run() { status_t status = preProcessImage(mBundle, mAssets, mFile, NULL); if (status) { *mHasErrors = true; } return true; // continue even if there are errors } private: const Bundle* mBundle; sp<AaptAssets> mAssets; sp<AaptFile> mFile; volatile bool* mHasErrors; }; static status_t preProcessImages(const Bundle* bundle, const sp<AaptAssets>& assets, const sp<ResourceTypeSet>& set, const char* type) { bool hasErrors = false; volatile bool hasErrors = false; ssize_t res = NO_ERROR; if (bundle->getUseCrunchCache() == false) { WorkQueue wq(MAX_THREADS, false); ResourceDirIterator it(set, String8(type)); Vector<sp<AaptFile> > newNameFiles; Vector<String8> newNamePaths; while ((res=it.next()) == NO_ERROR) { res = preProcessImage(bundle, assets, it.getFile(), NULL); if (res < NO_ERROR) { PreProcessImageWorkUnit* w = new PreProcessImageWorkUnit( bundle, assets, it.getFile(), &hasErrors); status_t status = wq.schedule(w); if (status) { fprintf(stderr, "preProcessImages failed: schedule() returned %d\n", status); hasErrors = true; delete w; break; } } status_t status = wq.finish(); if (status) { fprintf(stderr, "preProcessImages failed: finish() returned %d\n", status); hasErrors = true; } } return (hasErrors || (res < NO_ERROR)) ? UNKNOWN_ERROR : NO_ERROR; } Loading Loading
tools/aapt/Bundle.h +4 −4 Original line number Diff line number Diff line Loading @@ -83,7 +83,7 @@ public: bool getForce(void) const { return mForce; } void setForce(bool val) { mForce = val; } void setGrayscaleTolerance(int val) { mGrayscaleTolerance = val; } int getGrayscaleTolerance() { return mGrayscaleTolerance; } int getGrayscaleTolerance() const { return mGrayscaleTolerance; } bool getMakePackageDirs(void) const { return mMakePackageDirs; } void setMakePackageDirs(bool val) { mMakePackageDirs = val; } bool getUpdate(void) const { return mUpdate; } Loading Loading @@ -166,14 +166,14 @@ public: void setExtraPackages(const char* val) { mExtraPackages = val; } const char* getMaxResVersion() const { return mMaxResVersion; } void setMaxResVersion(const char * val) { mMaxResVersion = val; } bool getDebugMode() { return mDebugMode; } bool getDebugMode() const { return mDebugMode; } void setDebugMode(bool val) { mDebugMode = val; } bool getNonConstantId() { return mNonConstantId; } bool getNonConstantId() const { return mNonConstantId; } void setNonConstantId(bool val) { mNonConstantId = val; } const char* getProduct() const { return mProduct; } void setProduct(const char * val) { mProduct = val; } void setUseCrunchCache(bool val) { mUseCrunchCache = val; } bool getUseCrunchCache() { return mUseCrunchCache; } bool getUseCrunchCache() const { return mUseCrunchCache; } /* * Set and get the file specification. Loading
tools/aapt/Images.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -964,7 +964,7 @@ static void write_png(const char* imageName, compression_type)); } status_t preProcessImage(Bundle* bundle, const sp<AaptAssets>& assets, status_t preProcessImage(const Bundle* bundle, const sp<AaptAssets>& assets, const sp<AaptFile>& file, String8* outNewLeafName) { String8 ext(file->getPath().getPathExtension()); Loading Loading @@ -1084,7 +1084,7 @@ bail: return error; } status_t preProcessImageToCache(Bundle* bundle, String8 source, String8 dest) status_t preProcessImageToCache(const Bundle* bundle, const String8& source, const String8& dest) { png_structp read_ptr = NULL; png_infop read_info = NULL; Loading
tools/aapt/Images.h +2 −2 Original line number Diff line number Diff line Loading @@ -15,10 +15,10 @@ using android::String8; status_t preProcessImage(Bundle* bundle, const sp<AaptAssets>& assets, status_t preProcessImage(const Bundle* bundle, const sp<AaptAssets>& assets, const sp<AaptFile>& file, String8* outNewLeafName); status_t preProcessImageToCache(Bundle* bundle, String8 source, String8 dest); status_t preProcessImageToCache(const Bundle* bundle, const String8& source, const String8& dest); status_t postProcessImage(const sp<AaptAssets>& assets, ResourceTable* table, const sp<AaptFile>& file); Loading
tools/aapt/Resource.cpp +42 −6 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ #include "FileFinder.h" #include "CacheUpdater.h" #include <utils/WorkQueue.h> #if HAVE_PRINTF_ZD # define ZD "%zd" # define ZD_TYPE ssize_t Loading @@ -24,6 +26,9 @@ #define NOISY(x) // x // Number of threads to use for preprocessing images. static const size_t MAX_THREADS = 4; // ========================================================================== // ========================================================================== // ========================================================================== Loading Loading @@ -302,21 +307,52 @@ static status_t makeFileResources(Bundle* bundle, const sp<AaptAssets>& assets, return hasErrors ? UNKNOWN_ERROR : NO_ERROR; } static status_t preProcessImages(Bundle* bundle, const sp<AaptAssets>& assets, class PreProcessImageWorkUnit : public WorkQueue::WorkUnit { public: PreProcessImageWorkUnit(const Bundle* bundle, const sp<AaptAssets>& assets, const sp<AaptFile>& file, volatile bool* hasErrors) : mBundle(bundle), mAssets(assets), mFile(file), mHasErrors(hasErrors) { } virtual bool run() { status_t status = preProcessImage(mBundle, mAssets, mFile, NULL); if (status) { *mHasErrors = true; } return true; // continue even if there are errors } private: const Bundle* mBundle; sp<AaptAssets> mAssets; sp<AaptFile> mFile; volatile bool* mHasErrors; }; static status_t preProcessImages(const Bundle* bundle, const sp<AaptAssets>& assets, const sp<ResourceTypeSet>& set, const char* type) { bool hasErrors = false; volatile bool hasErrors = false; ssize_t res = NO_ERROR; if (bundle->getUseCrunchCache() == false) { WorkQueue wq(MAX_THREADS, false); ResourceDirIterator it(set, String8(type)); Vector<sp<AaptFile> > newNameFiles; Vector<String8> newNamePaths; while ((res=it.next()) == NO_ERROR) { res = preProcessImage(bundle, assets, it.getFile(), NULL); if (res < NO_ERROR) { PreProcessImageWorkUnit* w = new PreProcessImageWorkUnit( bundle, assets, it.getFile(), &hasErrors); status_t status = wq.schedule(w); if (status) { fprintf(stderr, "preProcessImages failed: schedule() returned %d\n", status); hasErrors = true; delete w; break; } } status_t status = wq.finish(); if (status) { fprintf(stderr, "preProcessImages failed: finish() returned %d\n", status); hasErrors = true; } } return (hasErrors || (res < NO_ERROR)) ? UNKNOWN_ERROR : NO_ERROR; } Loading