moved some macro related logic to the generated code

This commit is contained in:
Fabien Potencier
2012-07-21 22:47:06 +02:00
parent 8a84838798
commit b5d62a192e
3 changed files with 3 additions and 10 deletions
+1 -1
View File
@@ -76,7 +76,7 @@ class Twig_Node_Macro extends Twig_Node
->write("throw \$e;\n")
->outdent()
->write("}\n\n")
->write("return ob_get_clean();\n")
->write("return ('' === \$tmp = ob_get_clean()) ? '' : new Twig_Markup(\$tmp, \$this->env->getCharset());\n")
->outdent()
->write("}\n\n")
;
+1 -8
View File
@@ -422,14 +422,7 @@ abstract class Twig_Template implements Twig_TemplateInterface
$this->env->getExtension('sandbox')->checkMethodAllowed($object, $method);
}
$ret = call_user_func_array(array($object, $method), $arguments);
// hack to be removed when macro calls are refactored
if ($object instanceof Twig_TemplateInterface) {
return $ret === '' ? '' : new Twig_Markup($ret, $this->env->getCharset());
}
return $ret;
return call_user_func_array(array($object, $method), $arguments);
}
/**
+1 -1
View File
@@ -61,7 +61,7 @@ public function getfoo(\$foo = null)
throw \$e;
}
return ob_get_clean();
return ('' === \$tmp = ob_get_clean()) ? '' : new Twig_Markup(\$tmp, \$this->env->getCharset());
}
EOF
),