Index: runtime/vm/profiler_service.cc |
diff --git a/runtime/vm/profiler_service.cc b/runtime/vm/profiler_service.cc |
index 4e371794ca55f50128f9d594f34be0c78b54fef5..38118a60c8e405b2e025fa18f3f2e947338bb066 100644 |
--- a/runtime/vm/profiler_service.cc |
+++ b/runtime/vm/profiler_service.cc |
@@ -1905,6 +1905,13 @@ class ProfileBuilder : public ValueObject { |
0, |
code); |
} |
+ |
+#if defined(HOST_ARCH_ARM) |
+ // The symbol for a Thumb function will be xxx1, but we may have samples |
+ // at function entry which will have pc xxx0. |
+ native_start &= ~1; |
+#endif |
+ |
ASSERT(pc >= native_start); |
ProfileCode* profile_code = |
new ProfileCode(ProfileCode::kNativeCode, |
@@ -1913,7 +1920,7 @@ class ProfileBuilder : public ValueObject { |
0, |
code); |
profile_code->SetName(native_name); |
- free(native_name); |
+ NativeSymbolResolver::FreeSymbolName(native_name); |
return profile_code; |
} |