Loading tools/aapt/AaptAssets.cpp +3 −2 Original line number Original line Diff line number Diff line Loading @@ -1141,9 +1141,10 @@ bail: ssize_t AaptAssets::slurpFullTree(Bundle* bundle, const String8& srcDir, ssize_t AaptAssets::slurpFullTree(Bundle* bundle, const String8& srcDir, const AaptGroupEntry& kind, const AaptGroupEntry& kind, const String8& resType, const String8& resType, sp<FilePathStore>& fullResPaths) sp<FilePathStore>& fullResPaths, const bool overwrite) { { ssize_t res = AaptDir::slurpFullTree(bundle, srcDir, kind, resType, fullResPaths); ssize_t res = AaptDir::slurpFullTree(bundle, srcDir, kind, resType, fullResPaths, overwrite); if (res > 0) { if (res > 0) { mGroupEntries.add(kind); mGroupEntries.add(kind); } } Loading tools/aapt/AaptAssets.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -591,7 +591,8 @@ private: const String8& srcDir, const String8& srcDir, const AaptGroupEntry& kind, const AaptGroupEntry& kind, const String8& resType, const String8& resType, sp<FilePathStore>& fullResPaths); sp<FilePathStore>& fullResPaths, const bool overwrite=false); ssize_t slurpResourceTree(Bundle* bundle, const String8& srcDir); ssize_t slurpResourceTree(Bundle* bundle, const String8& srcDir); ssize_t slurpResourceZip(Bundle* bundle, const char* filename); ssize_t slurpResourceZip(Bundle* bundle, const char* filename); Loading tools/aapt/ConfigDescription.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -28,10 +28,12 @@ struct ConfigDescription : public android::ResTable_config { memset(this, 0, sizeof(*this)); memset(this, 0, sizeof(*this)); size = sizeof(android::ResTable_config); size = sizeof(android::ResTable_config); } } ConfigDescription(const android::ResTable_config&o) { ConfigDescription(const android::ResTable_config&o) { *static_cast<android::ResTable_config*>(this) = o; *static_cast<android::ResTable_config*>(this) = o; size = sizeof(android::ResTable_config); size = sizeof(android::ResTable_config); } } ConfigDescription(const ConfigDescription&o) { ConfigDescription(const ConfigDescription&o) { *static_cast<android::ResTable_config*>(this) = o; *static_cast<android::ResTable_config*>(this) = o; } } Loading @@ -41,6 +43,7 @@ struct ConfigDescription : public android::ResTable_config { size = sizeof(android::ResTable_config); size = sizeof(android::ResTable_config); return *this; return *this; } } ConfigDescription& operator=(const ConfigDescription& o) { ConfigDescription& operator=(const ConfigDescription& o) { *static_cast<android::ResTable_config*>(this) = o; *static_cast<android::ResTable_config*>(this) = o; return *this; return *this; Loading tools/aapt/ResourceIdCache.cpp +2 −4 Original line number Original line Diff line number Diff line Loading @@ -9,8 +9,6 @@ #include <utils/Log.h> #include <utils/Log.h> #include "ResourceIdCache.h" #include "ResourceIdCache.h" #include <map> #include <map> using namespace std; static size_t mHits = 0; static size_t mHits = 0; static size_t mMisses = 0; static size_t mMisses = 0; Loading @@ -29,7 +27,7 @@ struct CacheEntry { CacheEntry(const android::String16& name, uint32_t resId) : hashedName(name), id(resId) { } CacheEntry(const android::String16& name, uint32_t resId) : hashedName(name), id(resId) { } }; }; static map< uint32_t, CacheEntry > mIdMap; static std::map< uint32_t, CacheEntry > mIdMap; // djb2; reasonable choice for strings when collisions aren't particularly important // djb2; reasonable choice for strings when collisions aren't particularly important Loading Loading @@ -63,7 +61,7 @@ uint32_t ResourceIdCache::lookup(const android::String16& package, bool onlyPublic) { bool onlyPublic) { const String16 hashedName = makeHashableName(package, type, name, onlyPublic); const String16 hashedName = makeHashableName(package, type, name, onlyPublic); const uint32_t hashcode = hash(hashedName); const uint32_t hashcode = hash(hashedName); map<uint32_t, CacheEntry>::iterator item = mIdMap.find(hashcode); std::map<uint32_t, CacheEntry>::iterator item = mIdMap.find(hashcode); if (item == mIdMap.end()) { if (item == mIdMap.end()) { // cache miss // cache miss mMisses++; mMisses++; Loading tools/split-select/Abi.cpp 0 → 100644 +83 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "Abi.h" namespace split { namespace abi { static const std::vector<Variant> sNoneVariants = {}; static const std::vector<Variant> sArmVariants = {Variant::armeabi, Variant::armeabi_v7a, Variant::arm64_v8a}; static const std::vector<Variant> sIntelVariants = {Variant::x86, Variant::x86_64}; static const std::vector<Variant> sMipsVariants = {Variant::mips, Variant::mips64}; Family getFamily(Variant variant) { switch (variant) { case Variant::none: return Family::none; case Variant::armeabi: case Variant::armeabi_v7a: case Variant::arm64_v8a: return Family::arm; case Variant::x86: case Variant::x86_64: return Family::intel; case Variant::mips: case Variant::mips64: return Family::mips; } return Family::none; } const std::vector<Variant>& getVariants(Family family) { switch (family) { case Family::none: return sNoneVariants; case Family::arm: return sArmVariants; case Family::intel: return sIntelVariants; case Family::mips: return sMipsVariants; } return sNoneVariants; } const char* toString(Variant variant) { switch (variant) { case Variant::none: return ""; case Variant::armeabi: return "armeabi"; case Variant::armeabi_v7a: return "armeabi-v7a"; case Variant::arm64_v8a: return "arm64-v8a"; case Variant::x86: return "x86"; case Variant::x86_64: return "x86_64"; case Variant::mips: return "mips"; case Variant::mips64: return "mips64"; } return ""; } } // namespace abi } // namespace split Loading
tools/aapt/AaptAssets.cpp +3 −2 Original line number Original line Diff line number Diff line Loading @@ -1141,9 +1141,10 @@ bail: ssize_t AaptAssets::slurpFullTree(Bundle* bundle, const String8& srcDir, ssize_t AaptAssets::slurpFullTree(Bundle* bundle, const String8& srcDir, const AaptGroupEntry& kind, const AaptGroupEntry& kind, const String8& resType, const String8& resType, sp<FilePathStore>& fullResPaths) sp<FilePathStore>& fullResPaths, const bool overwrite) { { ssize_t res = AaptDir::slurpFullTree(bundle, srcDir, kind, resType, fullResPaths); ssize_t res = AaptDir::slurpFullTree(bundle, srcDir, kind, resType, fullResPaths, overwrite); if (res > 0) { if (res > 0) { mGroupEntries.add(kind); mGroupEntries.add(kind); } } Loading
tools/aapt/AaptAssets.h +2 −1 Original line number Original line Diff line number Diff line Loading @@ -591,7 +591,8 @@ private: const String8& srcDir, const String8& srcDir, const AaptGroupEntry& kind, const AaptGroupEntry& kind, const String8& resType, const String8& resType, sp<FilePathStore>& fullResPaths); sp<FilePathStore>& fullResPaths, const bool overwrite=false); ssize_t slurpResourceTree(Bundle* bundle, const String8& srcDir); ssize_t slurpResourceTree(Bundle* bundle, const String8& srcDir); ssize_t slurpResourceZip(Bundle* bundle, const char* filename); ssize_t slurpResourceZip(Bundle* bundle, const char* filename); Loading
tools/aapt/ConfigDescription.h +3 −0 Original line number Original line Diff line number Diff line Loading @@ -28,10 +28,12 @@ struct ConfigDescription : public android::ResTable_config { memset(this, 0, sizeof(*this)); memset(this, 0, sizeof(*this)); size = sizeof(android::ResTable_config); size = sizeof(android::ResTable_config); } } ConfigDescription(const android::ResTable_config&o) { ConfigDescription(const android::ResTable_config&o) { *static_cast<android::ResTable_config*>(this) = o; *static_cast<android::ResTable_config*>(this) = o; size = sizeof(android::ResTable_config); size = sizeof(android::ResTable_config); } } ConfigDescription(const ConfigDescription&o) { ConfigDescription(const ConfigDescription&o) { *static_cast<android::ResTable_config*>(this) = o; *static_cast<android::ResTable_config*>(this) = o; } } Loading @@ -41,6 +43,7 @@ struct ConfigDescription : public android::ResTable_config { size = sizeof(android::ResTable_config); size = sizeof(android::ResTable_config); return *this; return *this; } } ConfigDescription& operator=(const ConfigDescription& o) { ConfigDescription& operator=(const ConfigDescription& o) { *static_cast<android::ResTable_config*>(this) = o; *static_cast<android::ResTable_config*>(this) = o; return *this; return *this; Loading
tools/aapt/ResourceIdCache.cpp +2 −4 Original line number Original line Diff line number Diff line Loading @@ -9,8 +9,6 @@ #include <utils/Log.h> #include <utils/Log.h> #include "ResourceIdCache.h" #include "ResourceIdCache.h" #include <map> #include <map> using namespace std; static size_t mHits = 0; static size_t mHits = 0; static size_t mMisses = 0; static size_t mMisses = 0; Loading @@ -29,7 +27,7 @@ struct CacheEntry { CacheEntry(const android::String16& name, uint32_t resId) : hashedName(name), id(resId) { } CacheEntry(const android::String16& name, uint32_t resId) : hashedName(name), id(resId) { } }; }; static map< uint32_t, CacheEntry > mIdMap; static std::map< uint32_t, CacheEntry > mIdMap; // djb2; reasonable choice for strings when collisions aren't particularly important // djb2; reasonable choice for strings when collisions aren't particularly important Loading Loading @@ -63,7 +61,7 @@ uint32_t ResourceIdCache::lookup(const android::String16& package, bool onlyPublic) { bool onlyPublic) { const String16 hashedName = makeHashableName(package, type, name, onlyPublic); const String16 hashedName = makeHashableName(package, type, name, onlyPublic); const uint32_t hashcode = hash(hashedName); const uint32_t hashcode = hash(hashedName); map<uint32_t, CacheEntry>::iterator item = mIdMap.find(hashcode); std::map<uint32_t, CacheEntry>::iterator item = mIdMap.find(hashcode); if (item == mIdMap.end()) { if (item == mIdMap.end()) { // cache miss // cache miss mMisses++; mMisses++; Loading
tools/split-select/Abi.cpp 0 → 100644 +83 −0 Original line number Original line Diff line number Diff line /* * Copyright (C) 2014 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include "Abi.h" namespace split { namespace abi { static const std::vector<Variant> sNoneVariants = {}; static const std::vector<Variant> sArmVariants = {Variant::armeabi, Variant::armeabi_v7a, Variant::arm64_v8a}; static const std::vector<Variant> sIntelVariants = {Variant::x86, Variant::x86_64}; static const std::vector<Variant> sMipsVariants = {Variant::mips, Variant::mips64}; Family getFamily(Variant variant) { switch (variant) { case Variant::none: return Family::none; case Variant::armeabi: case Variant::armeabi_v7a: case Variant::arm64_v8a: return Family::arm; case Variant::x86: case Variant::x86_64: return Family::intel; case Variant::mips: case Variant::mips64: return Family::mips; } return Family::none; } const std::vector<Variant>& getVariants(Family family) { switch (family) { case Family::none: return sNoneVariants; case Family::arm: return sArmVariants; case Family::intel: return sIntelVariants; case Family::mips: return sMipsVariants; } return sNoneVariants; } const char* toString(Variant variant) { switch (variant) { case Variant::none: return ""; case Variant::armeabi: return "armeabi"; case Variant::armeabi_v7a: return "armeabi-v7a"; case Variant::arm64_v8a: return "arm64-v8a"; case Variant::x86: return "x86"; case Variant::x86_64: return "x86_64"; case Variant::mips: return "mips"; case Variant::mips64: return "mips64"; } return ""; } } // namespace abi } // namespace split