diff options
author | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-17 00:29:50 +0000 |
---|---|---|
committer | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-17 00:29:50 +0000 |
commit | 210ef1c6eacb7c953ff3051cf4548b2c72367138 (patch) | |
tree | 8fe66b5d0fb3327a2293bc8dc9d267630c264a61 /app/resource_bundle.cc | |
parent | 3bd386d1da67498cba15c64dbffe41bc76b4e199 (diff) | |
download | chromium_src-210ef1c6eacb7c953ff3051cf4548b2c72367138.zip chromium_src-210ef1c6eacb7c953ff3051cf4548b2c72367138.tar.gz chromium_src-210ef1c6eacb7c953ff3051cf4548b2c72367138.tar.bz2 |
Load net-internals from the newly created resources.pak file.
This patch also forces the loading of the optional DataPack for const correctness reasons
BUG=35793,42770
TEST=none
Review URL: http://codereview.chromium.org/2855003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50057 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'app/resource_bundle.cc')
-rw-r--r-- | app/resource_bundle.cc | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/app/resource_bundle.cc b/app/resource_bundle.cc index dcf7fa8..d61e83d 100644 --- a/app/resource_bundle.cc +++ b/app/resource_bundle.cc @@ -105,7 +105,17 @@ SkBitmap* ResourceBundle::LoadBitmap(DataHandle data_handle, int resource_id) { RefCountedStaticMemory* ResourceBundle::LoadDataResourceBytes( int resource_id) const { - return LoadResourceBytes(resources_data_, resource_id); + RefCountedStaticMemory* bytes = + LoadResourceBytes(resources_data_, resource_id); + + // Check all our additional data packs for the resources if it wasn't loaded + // from our main source. + for (std::vector<LoadedDataPack*>::const_iterator it = data_packs_.begin(); + !bytes && it != data_packs_.end(); ++it) { + bytes = (*it)->GetStaticMemory(resource_id); + } + + return bytes; } SkBitmap* ResourceBundle::GetBitmapNamed(int resource_id) { @@ -198,11 +208,8 @@ const gfx::Font& ResourceBundle::GetFont(FontStyle style) { // LoadedDataPack implementation ResourceBundle::LoadedDataPack::LoadedDataPack(const FilePath& path) : path_(path) { - // On unicies, we preload data packs so background updates don't cause us to - // load the wrong data. -#if defined(OS_POSIX) && !defined(OS_MACOSX) + // Always preload the data packs so we can maintain constness. Load(); -#endif } void ResourceBundle::LoadedDataPack::Load() { @@ -212,9 +219,12 @@ void ResourceBundle::LoadedDataPack::Load() { CHECK(success) << "Failed to load " << path_.value(); } -bool ResourceBundle::LoadedDataPack::GetStringPiece(int resource_id, - base::StringPiece* data) { - if (!data_pack_.get()) - Load(); +bool ResourceBundle::LoadedDataPack::GetStringPiece( + int resource_id, base::StringPiece* data) const { return data_pack_->GetStringPiece(static_cast<uint32>(resource_id), data); } + +RefCountedStaticMemory* ResourceBundle::LoadedDataPack::GetStaticMemory( + int resource_id) const { + return data_pack_->GetStaticMemory(resource_id); +} |