Bug 482921 part 11 - Deduplicate the tokenizer loop in .cpp. r=Olli.Pettay.
This commit is contained in:
@@ -1340,7 +1340,7 @@ public class Tokenizer implements Locator {
|
||||
*/
|
||||
// CPPONLY: if (mViewSource) {
|
||||
// CPPONLY: mViewSource.SetBuffer(buffer);
|
||||
// CPPONLY: pos = stateLoopReportTransitions(state, c, pos, buffer.getBuffer(), false, returnState, buffer.getEnd());
|
||||
// CPPONLY: pos = stateLoop(state, c, pos, buffer.getBuffer(), false, returnState, buffer.getEnd());
|
||||
// CPPONLY: mViewSource.DropBuffer((pos == buffer.getEnd()) ? pos : pos + 1);
|
||||
// CPPONLY: } else {
|
||||
// CPPONLY: pos = stateLoop(state, c, pos, buffer.getBuffer(), false, returnState, buffer.getEnd());
|
||||
@@ -3187,7 +3187,7 @@ public class Tokenizer implements Locator {
|
||||
* second column of the named character references
|
||||
* table).
|
||||
*/
|
||||
// CPPONLY: mViewSource.CompletedNamedCharacterReference();
|
||||
// CPPONLY: completedNamedCharacterReference();
|
||||
@Const @NoLength char[] val = NamedCharacters.VALUES[candidate];
|
||||
if (
|
||||
// [NOCPP[
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -46,6 +46,7 @@
|
||||
#include "nsAHtml5TreeBuilderState.h"
|
||||
#include "nsHtml5Macros.h"
|
||||
#include "nsHtml5Highlighter.h"
|
||||
#include "nsHtml5TokenizerLoopPolicies.h"
|
||||
|
||||
class nsHtml5StreamParser;
|
||||
|
||||
@@ -217,8 +218,7 @@ class nsHtml5Tokenizer
|
||||
void start();
|
||||
bool tokenizeBuffer(nsHtml5UTF16Buffer* buffer);
|
||||
private:
|
||||
PRInt32 stateLoop(PRInt32 state, PRUnichar c, PRInt32 pos, PRUnichar* buf, bool reconsume, PRInt32 returnState, PRInt32 endPos);
|
||||
PRInt32 stateLoopReportTransitions(PRInt32 state, PRUnichar c, PRInt32 pos, PRUnichar* buf, bool reconsume, PRInt32 returnState, PRInt32 endPos);
|
||||
template<class P> PRInt32 stateLoop(PRInt32 state, PRUnichar c, PRInt32 pos, PRUnichar* buf, bool reconsume, PRInt32 returnState, PRInt32 endPos);
|
||||
void initDoctypeFields();
|
||||
inline void adjustDoubleHyphenAndAppendToLongStrBufCarriageReturn()
|
||||
{
|
||||
|
||||
68
parser/html/nsHtml5TokenizerLoopPolicies.h
Normal file
68
parser/html/nsHtml5TokenizerLoopPolicies.h
Normal file
@@ -0,0 +1,68 @@
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is HTML5 View Source code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Mozilla Foundation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2011
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Henri Sivonen <hsivonen@iki.fi>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef nsHtml5TokenizerLoopPolicies_h_
|
||||
#define nsHtml5TokenizerLoopPolicies_h_
|
||||
|
||||
struct nsHtml5SilentPolicy
|
||||
{
|
||||
static const bool viewingSource = false;
|
||||
static PRInt32 transition(nsHtml5Highlighter* aHighlighter,
|
||||
PRInt32 aState,
|
||||
bool aReconsume,
|
||||
PRInt32 aPos) {
|
||||
return aState;
|
||||
}
|
||||
static void completedNamedCharacterReference(nsHtml5Highlighter* aHighlighter) {
|
||||
}
|
||||
};
|
||||
|
||||
struct nsHtml5ViewSourcePolicy
|
||||
{
|
||||
static const bool viewingSource = true;
|
||||
static PRInt32 transition(nsHtml5Highlighter* aHighlighter,
|
||||
PRInt32 aState,
|
||||
bool aReconsume,
|
||||
PRInt32 aPos) {
|
||||
return aHighlighter->Transition(aState, aReconsume, aPos);
|
||||
}
|
||||
static void completedNamedCharacterReference(nsHtml5Highlighter* aHighlighter) {
|
||||
aHighlighter->CompletedNamedCharacterReference();
|
||||
}
|
||||
};
|
||||
|
||||
#endif // nsHtml5TokenizerLoopPolicies_h_
|
||||
Reference in New Issue
Block a user