| Index: runtime/vm/object.cc
|
| diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
|
| index 4046022fc279c8834c6bac398d3caad62849acea..de8a802ec532f242b561ea0df8b3087b8e58e0b7 100644
|
| --- a/runtime/vm/object.cc
|
| +++ b/runtime/vm/object.cc
|
| @@ -6752,7 +6752,7 @@ void Function::ClearICData() const {
|
| }
|
|
|
|
|
| -bool Function::CheckSourceFingerprint(int32_t fp) const {
|
| +bool Function::CheckSourceFingerprint(const char* prefix, int32_t fp) const {
|
| if (SourceFingerprint() != fp) {
|
| const bool recalculatingFingerprints = false;
|
| if (recalculatingFingerprints) {
|
| @@ -6760,7 +6760,8 @@ bool Function::CheckSourceFingerprint(int32_t fp) const {
|
| // to replace the old values.
|
| // sed -i .bak -f /tmp/newkeys runtime/vm/method_recognizer.h
|
| // sed -i .bak -f /tmp/newkeys runtime/vm/flow_graph_builder.h
|
| - OS::Print("s/%d/%d/\n", fp, SourceFingerprint());
|
| + OS::Print("s/V(%s, %d)/V(%s, %d)/\n",
|
| + prefix, fp, prefix, SourceFingerprint());
|
| } else {
|
| OS::Print("FP mismatch while recognizing method %s:"
|
| " expecting %d found %d\n",
|
| @@ -10435,14 +10436,6 @@ RawError* Library::CompileAll() {
|
| }
|
|
|
|
|
| -struct FpDiff {
|
| - FpDiff(int32_t old_, int32_t new_): old_fp(old_), new_fp(new_) {}
|
| - int32_t old_fp;
|
| - int32_t new_fp;
|
| -};
|
| -
|
| -
|
| -
|
| // Return Function::null() if function does not exist in libs.
|
| RawFunction* Library::GetFunction(const GrowableArray<Library*>& libs,
|
| const char* class_name,
|
| @@ -10476,7 +10469,6 @@ RawFunction* Library::GetFunction(const GrowableArray<Library*>& libs,
|
|
|
|
|
| void Library::CheckFunctionFingerprints() {
|
| - GrowableArray<FpDiff> collected_fp_diffs;
|
| GrowableArray<Library*> all_libs;
|
| Function& func = Function::Handle();
|
| bool has_errors = false;
|
| @@ -10486,11 +10478,8 @@ void Library::CheckFunctionFingerprints() {
|
| if (func.IsNull()) { \
|
| has_errors = true; \
|
| OS::Print("Function not found %s.%s\n", #class_name, #function_name); \
|
| - } else if (func.SourceFingerprint() != fp) { \
|
| - has_errors = true; \
|
| - OS::Print("Wrong fingerprint for '%s': expecting %d found %d\n", \
|
| - func.ToFullyQualifiedCString(), fp, func.SourceFingerprint()); \
|
| - collected_fp_diffs.Add(FpDiff(fp, func.SourceFingerprint())); \
|
| + } else { \
|
| + CHECK_FINGERPRINT3(func, class_name, function_name, dest, fp); \
|
| } \
|
|
|
| all_libs.Add(&Library::ZoneHandle(Library::CoreLibrary()));
|
| @@ -10527,11 +10516,8 @@ Class& cls = Class::Handle();
|
| has_errors = true; \
|
| OS::Print("Function not found %s.%s\n", cls.ToCString(), \
|
| Symbols::factory_symbol().ToCString()); \
|
| - } else if (func.SourceFingerprint() != fp) { \
|
| - has_errors = true; \
|
| - OS::Print("Wrong fingerprint for '%s': expecting %d found %d\n", \
|
| - func.ToFullyQualifiedCString(), fp, func.SourceFingerprint()); \
|
| - collected_fp_diffs.Add(FpDiff(fp, func.SourceFingerprint())); \
|
| + } else { \
|
| + CHECK_FINGERPRINT2(func, factory_symbol, cid, fp); \
|
| } \
|
|
|
| RECOGNIZED_LIST_FACTORY_LIST(CHECK_FACTORY_FINGERPRINTS);
|
| @@ -10539,11 +10525,6 @@ Class& cls = Class::Handle();
|
| #undef CHECK_FACTORY_FINGERPRINTS
|
|
|
| if (has_errors) {
|
| - for (intptr_t i = 0; i < collected_fp_diffs.length(); i++) {
|
| - OS::Print("s/%d/%d/\n",
|
| - collected_fp_diffs[i].old_fp, collected_fp_diffs[i].new_fp);
|
| - }
|
| - OS::Print("\n");
|
| FATAL("Fingerprint mismatch.");
|
| }
|
| }
|
|
|