r292635 - Changed tidyNode class to disallow manual node creation.
r292719 - Set the tidyNode constructor private
r292765 - Add a test for tidyNode::__construct()
(David Soria Parra)
- Changed "post_max_size" php.ini directive to allow unlimited post size by
setting it to 0. (Rasmus)
+- Changed tidyNode class to disallow manual node creation. (Pierrick)
- Removed automatic file descriptor unlocking happening on shutdown and/or
stream close (on all OSes). (Tony, Ilia)
ZEND_NAMED_FE(name, ZEND_FN(func_name), arg_types)
#define TIDY_NODE_METHOD(name) PHP_FUNCTION(tnm_ ##name)
#define TIDY_NODE_ME(name, param) TIDY_METHOD_MAP(name, tnm_ ##name, param)
+#define TIDY_NODE_PRIVATE_ME(name, param) ZEND_NAMED_ME(name, ZEND_FN(tnm_ ##name), param, ZEND_ACC_PRIVATE)
#define TIDY_DOC_METHOD(name) PHP_FUNCTION(tdm_ ##name)
#define TIDY_DOC_ME(name, param) TIDY_METHOD_MAP(name, tdm_ ##name, param)
#define TIDY_ATTR_METHOD(name) PHP_FUNCTION(tam_ ##name)
<?php
//test leaks here:
-new tidyNode();
-var_dump(new tidyNode());
new tidy();
var_dump(new tidy());
echo "-------\n";
-$x = new tidyNode();
-var_dump($x->isHtml());
-
$tidy = new tidy();
$tidy->parseString('<html><?php echo "xpto;" ?></html>');
?>
--EXPECT--
-object(tidyNode)#1 (0) {
-}
object(tidy)#1 (2) {
["errorBuffer"]=>
NULL
NULL
}
-------
-bool(false)
bool(true)
bool(true)
bool(false)
--FILE--
<?php
-new tidyNode;
-$node = new tidyNode();
-
-var_dump($node->isPhp());
-var_dump($node->isText());
-var_dump($node->isComment());
-var_dump($node->hasSiblings());
-var_dump((string)$node);
-
$tidy=tidy_parse_string('<% %>');
var_dump($tidy->Root()->child[0]->isAsp());
?>
--EXPECT--
-bool(false)
-bool(false)
-bool(false)
-bool(false)
-string(0) ""
bool(true)
bool(true)
bool(true)
--- /dev/null
+--TEST--
+tidyNode::__construct()
+--SKIPIF--
+<?php
+ if (!extension_loaded('tidy')) die ('skip tidy not present');
+?>
+--FILE--
+<?php
+new tidyNode;
+?>
+--EXPECTF--
+Fatal error: Call to private tidyNode::__construct() from invalid context in %s on line %d
static TIDY_NODE_METHOD(isAsp);
static TIDY_NODE_METHOD(isPhp);
static TIDY_NODE_METHOD(getParent);
+static TIDY_NODE_METHOD(__construct);
/* }}} */
ZEND_DECLARE_MODULE_GLOBALS(tidy)
TIDY_NODE_ME(isAsp, NULL)
TIDY_NODE_ME(isPhp, NULL)
TIDY_NODE_ME(getParent, NULL)
+ TIDY_NODE_PRIVATE_ME(__construct, NULL)
{NULL, NULL, NULL}
};
}
/* }}} */
+/* {{{ proto void tidyNode::__construct()
+ __constructor for tidyNode. */
+static TIDY_NODE_METHOD(__construct)
+{
+ php_error_docref(NULL TSRMLS_CC, E_ERROR, "You should not create a tidyNode manually");
+}
+/* }}} */
+
static void _php_tidy_register_nodetypes(INIT_FUNC_ARGS)
{
TIDY_NODE_CONST(ROOT, Root);