simpleperf: fix removing ART frames.

ART frames can also exist before or after JITed Java methods.

Bug: none
Test: run report_html.py manually, and check that ART frames
Test: near JITed Java methods are removed.
Change-Id: I771cb7503bb62e8d0fc71167bfd887abe069554f
diff --git a/simpleperf/dso.cpp b/simpleperf/dso.cpp
index 8e641a8..50a3dc8 100644
--- a/simpleperf/dso.cpp
+++ b/simpleperf/dso.cpp
@@ -317,6 +317,20 @@
   unknown_symbols_.insert(std::make_pair(vaddr_in_dso, Symbol(name, vaddr_in_dso, 1)));
 }
 
+bool Dso::IsForJavaMethod() {
+  if (type_ == DSO_DEX_FILE) {
+    return true;
+  }
+  if (type_ == DSO_ELF_FILE) {
+    // JIT symfiles for JITed Java methods are dumped as temporary files, whose name are in format
+    // "TemporaryFile-XXXXXX".
+    size_t pos = path_.rfind('/');
+    pos = (pos == std::string::npos) ? 0 : pos + 1;
+    return strncmp(&path_[pos], "TemporaryFile", strlen("TemporaryFile")) == 0;
+  }
+  return false;
+}
+
 void Dso::Load() {
   is_loaded_ = true;
   std::vector<Symbol> symbols = LoadSymbols();