From ba9bf72a2a725a0a749e67a3b5095019c72cb2f8 Mon Sep 17 00:00:00 2001 From: "jochen@chromium.org" Date: Wed, 8 Oct 2014 09:01:43 +0000 Subject: [PATCH] Avoid unnecessary data race on FLAG_track_double_fields BUG=none R=svenpanne@chromium.org LOG=n Review URL: https://codereview.chromium.org/639723002 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24456 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/bootstrapper.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc index 405f665..795cd52 100644 --- a/src/bootstrapper.cc +++ b/src/bootstrapper.cc @@ -2590,20 +2590,24 @@ void Genesis::MakeFunctionInstancePrototypeWritable() { class NoTrackDoubleFieldsForSerializerScope { public: explicit NoTrackDoubleFieldsForSerializerScope(Isolate* isolate) - : flag_(FLAG_track_double_fields) { + : flag_(FLAG_track_double_fields), enabled_(false) { if (isolate->serializer_enabled()) { // Disable tracking double fields because heap numbers treated as // immutable by the serializer. FLAG_track_double_fields = false; + enabled_ = true; } } ~NoTrackDoubleFieldsForSerializerScope() { - FLAG_track_double_fields = flag_; + if (enabled_) { + FLAG_track_double_fields = flag_; + } } private: bool flag_; + bool enabled_; }; -- 2.7.4