OLD | NEW |
| (Empty) |
1 diff --git a/re2/compile.cc b/re2/compile.cc | |
2 index adb45fd..14e401a 100644 | |
3 --- a/re2/compile.cc | |
4 +++ b/re2/compile.cc | |
5 @@ -44,7 +44,7 @@ struct PatchList { | |
6 static PatchList Append(Prog::Inst *inst0, PatchList l1, PatchList l2); | |
7 }; | |
8 | |
9 -static PatchList nullPatchList; | |
10 +static PatchList nullPatchList = { 0 }; | |
11 | |
12 // Returns patch list containing just p. | |
13 PatchList PatchList::Mk(uint32 p) { | |
14 @@ -106,12 +106,13 @@ struct Frag { | |
15 uint32 begin; | |
16 PatchList end; | |
17 | |
18 - explicit Frag(LinkerInitialized) {} | |
19 Frag() : begin(0) { end.p = 0; } // needed so Frag can go in vector | |
20 Frag(uint32 begin, PatchList end) : begin(begin), end(end) {} | |
21 }; | |
22 | |
23 -static Frag kNullFrag(LINKER_INITIALIZED); | |
24 +static Frag NullFrag() { | |
25 + return Frag(); | |
26 +} | |
27 | |
28 // Input encodings. | |
29 enum Encoding { | |
30 @@ -684,13 +685,13 @@ Frag Compiler::PreVisit(Regexp* re, Frag, bool* stop) { | |
31 if (failed_) | |
32 *stop = true; | |
33 | |
34 - return kNullFrag; // not used by caller | |
35 + return NullFrag(); // not used by caller | |
36 } | |
37 | |
38 Frag Compiler::Literal(Rune r, bool foldcase) { | |
39 switch (encoding_) { | |
40 default: | |
41 - return kNullFrag; | |
42 + return NullFrag(); | |
43 | |
44 case kEncodingLatin1: | |
45 return ByteRange(r, r, foldcase); | |
46 @@ -1006,7 +1007,7 @@ Prog* Compiler::Compile(Regexp* re, bool reversed, int64 m
ax_mem) { | |
47 bool is_anchor_end = IsAnchorEnd(&sre, 0); | |
48 | |
49 // Generate fragment for entire regexp. | |
50 - Frag f = c.WalkExponential(sre, kNullFrag, 2*c.max_inst_); | |
51 + Frag f = c.WalkExponential(sre, NullFrag(), 2*c.max_inst_); | |
52 sre->Decref(); | |
53 if (c.failed_) | |
54 return NULL; | |
55 @@ -1097,7 +1098,7 @@ Prog* Compiler::CompileSet(const RE2::Options& options, RE
2::Anchor anchor, | |
56 c.Setup(pf, options.max_mem(), anchor); | |
57 | |
58 // Compile alternation of fragments. | |
59 - Frag all = c.WalkExponential(re, kNullFrag, 2*c.max_inst_); | |
60 + Frag all = c.WalkExponential(re, NullFrag(), 2*c.max_inst_); | |
61 re->Decref(); | |
62 if (c.failed_) | |
63 return NULL; | |
64 diff --git a/re2/re2.cc b/re2/re2.cc | |
65 index 0da886d..b9e44fc 100644 | |
66 --- a/re2/re2.cc | |
67 +++ b/re2/re2.cc | |
68 @@ -32,10 +32,10 @@ namespace re2 { | |
69 static const int kMaxArgs = 16; | |
70 static const int kVecSize = 1+kMaxArgs; | |
71 | |
72 -const VariadicFunction2<bool, const StringPiece&, const RE2&, RE2::Arg, RE2::Fu
llMatchN> RE2::FullMatch; | |
73 -const VariadicFunction2<bool, const StringPiece&, const RE2&, RE2::Arg, RE2::Pa
rtialMatchN> RE2::PartialMatch; | |
74 -const VariadicFunction2<bool, StringPiece*, const RE2&, RE2::Arg, RE2::ConsumeN
> RE2::Consume; | |
75 -const VariadicFunction2<bool, StringPiece*, const RE2&, RE2::Arg, RE2::FindAndC
onsumeN> RE2::FindAndConsume; | |
76 +const VariadicFunction2<bool, const StringPiece&, const RE2&, RE2::Arg, RE2::Fu
llMatchN> RE2::FullMatch = {}; | |
77 +const VariadicFunction2<bool, const StringPiece&, const RE2&, RE2::Arg, RE2::Pa
rtialMatchN> RE2::PartialMatch = {}; | |
78 +const VariadicFunction2<bool, StringPiece*, const RE2&, RE2::Arg, RE2::ConsumeN
> RE2::Consume = {}; | |
79 +const VariadicFunction2<bool, StringPiece*, const RE2&, RE2::Arg, RE2::FindAndC
onsumeN> RE2::FindAndConsume = {}; | |
80 | |
81 #define kDefaultMaxMem (8<<20) | |
82 | |
83 diff --git a/re2/variadic_function.h b/re2/variadic_function.h | |
84 index 8d2b763..7c7d6d5 100644 | |
85 --- a/re2/variadic_function.h | |
86 +++ b/re2/variadic_function.h | |
87 @@ -11,8 +11,6 @@ template <typename Result, typename Param0, typename Param1, t
ypename Arg, | |
88 Result (*Func)(Param0, Param1, const Arg* const [], int count)> | |
89 class VariadicFunction2 { | |
90 public: | |
91 - VariadicFunction2() {} | |
92 - | |
93 Result operator()(Param0 p0, Param1 p1) const { | |
94 return Func(p0, p1, 0, 0); | |
95 } | |
OLD | NEW |