diff options
Diffstat (limited to 'dexlayout')
| -rw-r--r-- | dexlayout/dexlayout.cc | 4 | ||||
| -rw-r--r-- | dexlayout/dexlayout_test.cc | 20 |
2 files changed, 18 insertions, 6 deletions
diff --git a/dexlayout/dexlayout.cc b/dexlayout/dexlayout.cc index 205c0d1384..db227676c2 100644 --- a/dexlayout/dexlayout.cc +++ b/dexlayout/dexlayout.cc @@ -1557,7 +1557,7 @@ void DexLayout::LayoutStringData(const DexFile* dex_file) { (method->GetAccessFlags() & kAccConstructor) != 0 && (method->GetAccessFlags() & kAccStatic) != 0; const bool method_executed = is_clinit || - info_->ContainsMethod(MethodReference(dex_file, method_id->GetIndex())); + info_->IsStartupOrHotMethod(MethodReference(dex_file, method_id->GetIndex())); if (!method_executed) { continue; } @@ -1699,7 +1699,7 @@ int32_t DexLayout::LayoutCodeItems(const DexFile* dex_file, (method->GetAccessFlags() & kAccConstructor) != 0 && (method->GetAccessFlags() & kAccStatic) != 0; const bool is_method_executed = is_clinit || - info_->ContainsMethod(MethodReference(dex_file, method_id->GetIndex())); + info_->IsStartupOrHotMethod(MethodReference(dex_file, method_id->GetIndex())); code_items[is_method_executed ? CodeItemKind::kMethodExecuted : CodeItemKind::kMethodNotExecuted] diff --git a/dexlayout/dexlayout_test.cc b/dexlayout/dexlayout_test.cc index 1d09a7f72a..6fe8eeb66e 100644 --- a/dexlayout/dexlayout_test.cc +++ b/dexlayout/dexlayout_test.cc @@ -341,18 +341,30 @@ class DexLayoutTest : public CommonRuntimeTest { if ((i & 3) != 0) { pfi.AddMethodIndex(dex_location, dex_file->GetLocationChecksum(), - i); + i, + dex_file->NumMethodIds()); + ++profile_methods; + } else if ((i & 2) != 0) { + pfi.AddSampledMethod(/*startup*/true, + dex_location, + dex_file->GetLocationChecksum(), + i, + dex_file->NumMethodIds()); ++profile_methods; } } DexCacheResolvedClasses cur_classes(dex_location, dex_location, - dex_file->GetLocationChecksum()); + dex_file->GetLocationChecksum(), + dex_file->NumMethodIds()); // Add every even class too. for (uint32_t i = 0; i < dex_file->NumClassDefs(); i += 1) { - cur_classes.AddClass(dex_file->GetClassDef(i).class_idx_); - ++profile_classes; + if ((i & 2) == 0) { + cur_classes.AddClass(dex_file->GetClassDef(i).class_idx_); + ++profile_classes; + } } + classes.insert(cur_classes); } pfi.AddMethodsAndClasses(pmis, classes); // Write to provided file. |