Chromium Code Reviews| Index: third_party/libaddressinput/chromium/cpp/src/rule.cc |
| diff --git a/third_party/libaddressinput/chromium/cpp/src/rule.cc b/third_party/libaddressinput/chromium/cpp/src/rule.cc |
| index 1566f646d15366e093d3a438551f172406edf109..5551ed44d19b127d74caa264f52016556703e703 100644 |
| --- a/third_party/libaddressinput/chromium/cpp/src/rule.cc |
| +++ b/third_party/libaddressinput/chromium/cpp/src/rule.cc |
| @@ -24,6 +24,7 @@ |
| #include "grit.h" |
| #include "messages.h" |
| +#include "region_data_constants.h" |
| #include "util/json.h" |
| #include "util/string_split.h" |
| @@ -32,6 +33,9 @@ namespace addressinput { |
| namespace { |
| +// Allocated once and leaked on shutdown. |
| +static Rule* default_rule = NULL; |
|
Evan Stade
2014/01/08 21:08:59
why not a local static?
please use gerrit instead
2014/01/09 00:38:11
Done.
|
| + |
| bool ParseToken(char c, AddressField* field) { |
| assert(field != NULL); |
| switch (c) { |
| @@ -171,6 +175,16 @@ Rule::Rule() |
| Rule::~Rule() {} |
| +// static |
| +const Rule& Rule::GetDefault() { |
| + if (default_rule == NULL) { |
| + default_rule = new Rule; |
| + default_rule->ParseSerializedRule( |
| + RegionDataConstants::GetDefaultRegionData()); |
| + } |
| + return *default_rule; |
| +} |
| + |
| void Rule::CopyFrom(const Rule& rule) { |
| format_ = rule.format_; |
| required_ = rule.required_; |