diff options
author | Dianne Hackborn <hackbod@google.com> | 2009-07-06 11:07:40 -0700 |
---|---|---|
committer | Dianne Hackborn <hackbod@google.com> | 2009-07-06 11:12:37 -0700 |
commit | 0f253efba5552db81bf942705b1e5525fc1f0c90 (patch) | |
tree | f1c043150036981385e5e7d2f70a6451e8d26bd1 /include | |
parent | 88008f1955ba005fbe4936e54758aedfffbe37b0 (diff) | |
download | frameworks_native-0f253efba5552db81bf942705b1e5525fc1f0c90.zip frameworks_native-0f253efba5552db81bf942705b1e5525fc1f0c90.tar.gz frameworks_native-0f253efba5552db81bf942705b1e5525fc1f0c90.tar.bz2 |
Don't re-parse the framework resources all the time.
A small optimization to the resource code, to not re-parse the framework
resources every time we build a new AssetManager. Instead, you can now
construct a ResTable from a previously created one... of course, like the
existing code for using the data in-place, you can't delete the original
ResTable until you have deleted the one that has been constructed from it.
Diffstat (limited to 'include')
-rw-r--r-- | include/utils/AssetManager.h | 11 | ||||
-rw-r--r-- | include/utils/ResourceTypes.h | 1 |
2 files changed, 10 insertions, 2 deletions
diff --git a/include/utils/AssetManager.h b/include/utils/AssetManager.h index c11429e..d8994e0 100644 --- a/include/utils/AssetManager.h +++ b/include/utils/AssetManager.h @@ -251,6 +251,9 @@ private: Asset* getResourceTableAsset(); Asset* setResourceTableAsset(Asset* asset); + ResTable* getResourceTable(); + ResTable* setResourceTable(ResTable* res); + bool isUpToDate(); protected: @@ -265,6 +268,7 @@ private: time_t mModWhen; Asset* mResourceTableAsset; + ResTable* mResourceTable; static Mutex gLock; static DefaultKeyedVector<String8, wp<SharedZip> > gOpen; @@ -288,8 +292,11 @@ private: */ ZipFileRO* getZip(const String8& path); - Asset* getZipResourceTable(const String8& path); - Asset* setZipResourceTable(const String8& path, Asset* asset); + Asset* getZipResourceTableAsset(const String8& path); + Asset* setZipResourceTableAsset(const String8& path, Asset* asset); + + ResTable* getZipResourceTable(const String8& path); + ResTable* setZipResourceTable(const String8& path, ResTable* res); // generate path, e.g. "common/en-US-noogle.zip" static String8 getPathName(const char* path); diff --git a/include/utils/ResourceTypes.h b/include/utils/ResourceTypes.h index eb4151a..93bca4a 100644 --- a/include/utils/ResourceTypes.h +++ b/include/utils/ResourceTypes.h @@ -1580,6 +1580,7 @@ public: bool copyData=false); status_t add(Asset* asset, void* cookie, bool copyData=false); + status_t add(ResTable* src); status_t getError() const; |