From c2b039970e435b5641f510c03db5f7eee160f73b Mon Sep 17 00:00:00 2001 From: "jochen@chromium.org" Date: Tue, 9 Jul 2013 07:19:51 +0000 Subject: [PATCH] Don't use the identifiers TRUE and FALSE icu uses the same identifiers, so we can't just #undef them BUG=v8:2745 R=yangguo@chromium.org Review URL: https://codereview.chromium.org/18209003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/jsregexp.cc | 28 ++++++++++++++++------------ src/jsregexp.h | 6 ++++-- src/win32-headers.h | 2 -- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/jsregexp.cc b/src/jsregexp.cc index 5da7398..666866e 100644 --- a/src/jsregexp.cc +++ b/src/jsregexp.cc @@ -2477,7 +2477,8 @@ bool RegExpNode::EmitQuickCheck(RegExpCompiler* compiler, QuickCheckDetails* details, bool fall_through_on_failure) { if (details->characters() == 0) return false; - GetQuickCheckDetails(details, compiler, 0, trace->at_start() == Trace::FALSE); + GetQuickCheckDetails( + details, compiler, 0, trace->at_start() == Trace::FALSE_VALUE); if (details->cannot_match()) return false; if (!details->Rationalize(compiler->ascii())) return false; ASSERT(details->characters() == 1 || @@ -3066,7 +3067,7 @@ static void EmitHat(RegExpCompiler* compiler, void AssertionNode::EmitBoundaryCheck(RegExpCompiler* compiler, Trace* trace) { RegExpMacroAssembler* assembler = compiler->macro_assembler(); Trace::TriBool next_is_word_character = Trace::UNKNOWN; - bool not_at_start = (trace->at_start() == Trace::FALSE); + bool not_at_start = (trace->at_start() == Trace::FALSE_VALUE); BoyerMooreLookahead* lookahead = bm_info(not_at_start); if (lookahead == NULL) { int eats_at_least = @@ -3077,12 +3078,15 @@ void AssertionNode::EmitBoundaryCheck(RegExpCompiler* compiler, Trace* trace) { BoyerMooreLookahead* bm = new(zone()) BoyerMooreLookahead(eats_at_least, compiler, zone()); FillInBMInfo(0, kRecursionBudget, bm, not_at_start); - if (bm->at(0)->is_non_word()) next_is_word_character = Trace::FALSE; - if (bm->at(0)->is_word()) next_is_word_character = Trace::TRUE; + if (bm->at(0)->is_non_word()) + next_is_word_character = Trace::FALSE_VALUE; + if (bm->at(0)->is_word()) next_is_word_character = Trace::TRUE_VALUE; } } else { - if (lookahead->at(0)->is_non_word()) next_is_word_character = Trace::FALSE; - if (lookahead->at(0)->is_word()) next_is_word_character = Trace::TRUE; + if (lookahead->at(0)->is_non_word()) + next_is_word_character = Trace::FALSE_VALUE; + if (lookahead->at(0)->is_word()) + next_is_word_character = Trace::TRUE_VALUE; } bool at_boundary = (assertion_type_ == AssertionNode::AT_BOUNDARY); if (next_is_word_character == Trace::UNKNOWN) { @@ -3102,10 +3106,10 @@ void AssertionNode::EmitBoundaryCheck(RegExpCompiler* compiler, Trace* trace) { assembler->Bind(&before_word); BacktrackIfPrevious(compiler, trace, at_boundary ? kIsWord : kIsNonWord); assembler->Bind(&ok); - } else if (next_is_word_character == Trace::TRUE) { + } else if (next_is_word_character == Trace::TRUE_VALUE) { BacktrackIfPrevious(compiler, trace, at_boundary ? kIsWord : kIsNonWord); } else { - ASSERT(next_is_word_character == Trace::FALSE); + ASSERT(next_is_word_character == Trace::FALSE_VALUE); BacktrackIfPrevious(compiler, trace, at_boundary ? kIsNonWord : kIsWord); } } @@ -3169,7 +3173,7 @@ void AssertionNode::Emit(RegExpCompiler* compiler, Trace* trace) { break; } case AT_START: { - if (trace->at_start() == Trace::FALSE) { + if (trace->at_start() == Trace::FALSE_VALUE) { assembler->GoTo(trace->backtrack()); return; } @@ -3986,7 +3990,7 @@ void ChoiceNode::Emit(RegExpCompiler* compiler, Trace* trace) { int first_normal_choice = greedy_loop ? 1 : 0; - bool not_at_start = current_trace->at_start() == Trace::FALSE; + bool not_at_start = current_trace->at_start() == Trace::FALSE_VALUE; const int kEatsAtLeastNotYetInitialized = -1; int eats_at_least = kEatsAtLeastNotYetInitialized; @@ -4057,7 +4061,7 @@ void ChoiceNode::Emit(RegExpCompiler* compiler, Trace* trace) { new_trace.set_bound_checked_up_to(preload_characters); } new_trace.quick_check_performed()->Clear(); - if (not_at_start_) new_trace.set_at_start(Trace::FALSE); + if (not_at_start_) new_trace.set_at_start(Trace::FALSE_VALUE); alt_gen->expects_preload = preload_is_current; bool generate_full_check_inline = false; if (FLAG_regexp_optimization && @@ -4157,7 +4161,7 @@ void ChoiceNode::EmitOutOfLineContinuation(RegExpCompiler* compiler, Trace out_of_line_trace(*trace); out_of_line_trace.set_characters_preloaded(preload_characters); out_of_line_trace.set_quick_check_performed(&alt_gen->quick_check_details); - if (not_at_start_) out_of_line_trace.set_at_start(Trace::FALSE); + if (not_at_start_) out_of_line_trace.set_at_start(Trace::FALSE_VALUE); ZoneList* guards = alternative.guards(); int guard_count = (guards == NULL) ? 0 : guards->length(); if (next_expects_preload) { diff --git a/src/jsregexp.h b/src/jsregexp.h index 528a9a2..20c0ac4 100644 --- a/src/jsregexp.h +++ b/src/jsregexp.h @@ -1330,7 +1330,7 @@ class Trace { // A value for a property that is either known to be true, know to be false, // or not known. enum TriBool { - UNKNOWN = -1, FALSE = 0, TRUE = 1 + UNKNOWN = -1, FALSE_VALUE = 0, TRUE_VALUE = 1 }; class DeferredAction { @@ -1426,7 +1426,9 @@ class Trace { at_start_ == UNKNOWN; } TriBool at_start() { return at_start_; } - void set_at_start(bool at_start) { at_start_ = at_start ? TRUE : FALSE; } + void set_at_start(bool at_start) { + at_start_ = at_start ? TRUE_VALUE : FALSE_VALUE; + } Label* backtrack() { return backtrack_; } Label* loop_label() { return loop_label_; } RegExpNode* stop_node() { return stop_node_; } diff --git a/src/win32-headers.h b/src/win32-headers.h index 5d9c89e..2b5d7d7 100644 --- a/src/win32-headers.h +++ b/src/win32-headers.h @@ -89,8 +89,6 @@ #undef THIS #undef CONST #undef NAN -#undef TRUE -#undef FALSE #undef UNKNOWN #undef NONE #undef ANY -- 2.7.4