Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /* This Source Code Form is subject to the terms of the Mozilla Public
3 : * License, v. 2.0. If a copy of the MPL was not distributed with this
4 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 :
6 : #include "txXSLTProcessor.h"
7 : #include "txInstructions.h"
8 : #include "nsGkAtoms.h"
9 : #include "txLog.h"
10 : #include "txStylesheetCompileHandlers.h"
11 : #include "txStylesheetCompiler.h"
12 : #include "txExecutionState.h"
13 : #include "txExprResult.h"
14 :
15 : TX_LG_IMPL
16 :
17 : /* static */
18 : bool
19 3 : txXSLTProcessor::init()
20 : {
21 : TX_LG_CREATE;
22 :
23 3 : if (!txHandlerTable::init())
24 0 : return false;
25 :
26 : extern bool TX_InitEXSLTFunction();
27 3 : if (!TX_InitEXSLTFunction())
28 0 : return false;
29 :
30 3 : return true;
31 : }
32 :
33 : /* static */
34 : void
35 0 : txXSLTProcessor::shutdown()
36 : {
37 0 : txStylesheetCompilerState::shutdown();
38 0 : txHandlerTable::shutdown();
39 0 : }
40 :
41 :
42 : /* static */
43 : nsresult
44 0 : txXSLTProcessor::execute(txExecutionState& aEs)
45 : {
46 0 : nsresult rv = NS_OK;
47 : txInstruction* instr;
48 0 : while ((instr = aEs.getNextInstruction())) {
49 0 : rv = instr->execute(aEs);
50 0 : NS_ENSURE_SUCCESS(rv, rv);
51 : }
52 :
53 0 : return NS_OK;
54 : }
|