diff options
Diffstat (limited to 'base/field_trial.cc')
-rw-r--r-- | base/field_trial.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/base/field_trial.cc b/base/field_trial.cc index 2b354d7..0bf39e2 100644 --- a/base/field_trial.cc +++ b/base/field_trial.cc @@ -67,9 +67,12 @@ std::string FieldTrial::MakeName(const std::string& name_prefix, // static FieldTrialList* FieldTrialList::global_ = NULL; -FieldTrialList::FieldTrialList() - : application_start_time_(Time::Now()) { +// static +bool FieldTrialList::register_without_global_ = false; + +FieldTrialList::FieldTrialList() : application_start_time_(Time::Now()) { DCHECK(!global_); + DCHECK(!register_without_global_); global_ = this; } @@ -86,9 +89,10 @@ FieldTrialList::~FieldTrialList() { // static void FieldTrialList::Register(FieldTrial* trial) { - DCHECK(global_); - if (!global_) + if (!global_) { + register_without_global_ = true; return; + } AutoLock auto_lock(global_->lock_); DCHECK(!global_->PreLockedFind(trial->name())); trial->AddRef(); |