nsresult txApplyImportsStart::execute(txExecutionState& aEs) { txExecutionState::TemplateRule* rule = aEs.getCurrentTemplateRule(); // The frame is set to null when there is no current template rule, or // when the current template rule is a default template. However this // instruction isn't used in default templates. if (!rule->mFrame) { // XXX ErrorReport: apply-imports instantiated without a current rule return NS_ERROR_XSLT_EXECUTION_FAILURE; } nsresult rv = aEs.pushParamMap(rule->mParams); NS_ENSURE_SUCCESS(rv, rv); txStylesheet::ImportFrame* frame = 0; txExpandedName mode(rule->mModeNsId, rule->mModeLocalName); txInstruction* templ = aEs.mStylesheet->findTemplate(aEs.getEvalContext()->getContextNode(), mode, &aEs, rule->mFrame, &frame); aEs.pushTemplateRule(frame, mode, rule->mParams); return aEs.runTemplate(templ); }
nsresult txInsertAttrSet::execute(txExecutionState& aEs) { txInstruction* instr = aEs.mStylesheet->getAttributeSet(mName); NS_ENSURE_TRUE(instr, NS_ERROR_XSLT_EXECUTION_FAILURE); nsresult rv = aEs.runTemplate(instr); NS_ENSURE_SUCCESS(rv, rv); return NS_OK; }
nsresult txApplyTemplates::execute(txExecutionState& aEs) { txStylesheet::ImportFrame* frame = 0; txInstruction* templ = aEs.mStylesheet->findTemplate(aEs.getEvalContext()->getContextNode(), mMode, &aEs, nullptr, &frame); aEs.pushTemplateRule(frame, mMode, aEs.mTemplateParams); return aEs.runTemplate(templ); }
nsresult txApplyDefaultElementTemplate::execute(txExecutionState& aEs) { txExecutionState::TemplateRule* rule = aEs.getCurrentTemplateRule(); txExpandedName mode(rule->mModeNsId, rule->mModeLocalName); txStylesheet::ImportFrame* frame = 0; txInstruction* templ = aEs.mStylesheet->findTemplate(aEs.getEvalContext()->getContextNode(), mode, &aEs, nullptr, &frame); aEs.pushTemplateRule(frame, mode, aEs.mTemplateParams); return aEs.runTemplate(templ); }