summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2009-07-06 11:07:40 -0700
committerDianne Hackborn <hackbod@google.com>2009-07-06 11:12:37 -0700
commit0f253efba5552db81bf942705b1e5525fc1f0c90 (patch)
treef1c043150036981385e5e7d2f70a6451e8d26bd1 /include
parent88008f1955ba005fbe4936e54758aedfffbe37b0 (diff)
downloadframeworks_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.h11
-rw-r--r--include/utils/ResourceTypes.h1
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;