Skip to content

Commit ffde287

Browse files
committed
Indicate that tidy's object methods expect 0 args
This prevents subclasses from being written with incompatible implementations, e.g. expecting more required args.
1 parent 29aa080 commit ffde287

File tree

1 file changed

+38
-27
lines changed

1 file changed

+38
-27
lines changed

ext/tidy/tidy.c

Lines changed: 38 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,9 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_tidy_diagnose, 0, 0, 1)
329329
ZEND_ARG_INFO(0, object)
330330
ZEND_END_ARG_INFO()
331331

332+
ZEND_BEGIN_ARG_INFO(arginfo_tidy_no_args, 0)
333+
ZEND_END_ARG_INFO()
334+
332335
ZEND_BEGIN_ARG_INFO(arginfo_tidy_get_release, 0)
333336
ZEND_END_ARG_INFO()
334337

@@ -379,17 +382,25 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_tidy_config_count, 0, 0, 1)
379382
ZEND_ARG_INFO(0, object)
380383
ZEND_END_ARG_INFO()
381384

382-
ZEND_BEGIN_ARG_INFO_EX(arginfo_tidy_getopt, 0, 0, 1)
385+
ZEND_BEGIN_ARG_INFO_EX(arginfo_tidy_getopt_method, 0, 0, 1)
386+
ZEND_ARG_INFO(0, option)
387+
ZEND_END_ARG_INFO()
388+
389+
ZEND_BEGIN_ARG_INFO_EX(arginfo_tidy_getopt, 0, 0, 2)
390+
ZEND_ARG_INFO(0, object)
383391
ZEND_ARG_INFO(0, option)
384392
ZEND_END_ARG_INFO()
385393

386-
ZEND_BEGIN_ARG_INFO(arginfo_tidy_get_root, 0)
394+
ZEND_BEGIN_ARG_INFO_EX(arginfo_tidy_get_root, 0, 0, 1)
395+
ZEND_ARG_INFO(0, object)
387396
ZEND_END_ARG_INFO()
388397

389-
ZEND_BEGIN_ARG_INFO(arginfo_tidy_get_html, 0)
398+
ZEND_BEGIN_ARG_INFO_EX(arginfo_tidy_get_html, 0, 0, 1)
399+
ZEND_ARG_INFO(0, object)
390400
ZEND_END_ARG_INFO()
391401

392-
ZEND_BEGIN_ARG_INFO(arginfo_tidy_get_head, 0)
402+
ZEND_BEGIN_ARG_INFO_EX(arginfo_tidy_get_head, 0, 0, 1)
403+
ZEND_ARG_INFO(0, object)
393404
ZEND_END_ARG_INFO()
394405

395406
ZEND_BEGIN_ARG_INFO_EX(arginfo_tidy_get_body, 0, 0, 1)
@@ -435,41 +446,41 @@ static const zend_function_entry tidy_functions[] = {
435446
};
436447

437448
static const zend_function_entry tidy_funcs_doc[] = {
438-
TIDY_METHOD_MAP(getOpt, tidy_getopt, arginfo_tidy_getopt)
439-
TIDY_METHOD_MAP(cleanRepair, tidy_clean_repair, NULL)
449+
TIDY_METHOD_MAP(getOpt, tidy_getopt, arginfo_tidy_getopt_method)
450+
TIDY_METHOD_MAP(cleanRepair, tidy_clean_repair, arginfo_tidy_no_args)
440451
TIDY_DOC_ME(parseFile, arginfo_tidy_parse_file)
441452
TIDY_DOC_ME(parseString, arginfo_tidy_parse_string)
442453
TIDY_METHOD_MAP(repairString, tidy_repair_string, arginfo_tidy_repair_string)
443454
TIDY_METHOD_MAP(repairFile, tidy_repair_file, arginfo_tidy_repair_file)
444-
TIDY_METHOD_MAP(diagnose, tidy_diagnose, NULL)
445-
TIDY_METHOD_MAP(getRelease, tidy_get_release, NULL)
446-
TIDY_METHOD_MAP(getConfig, tidy_get_config, NULL)
447-
TIDY_METHOD_MAP(getStatus, tidy_get_status, NULL)
448-
TIDY_METHOD_MAP(getHtmlVer, tidy_get_html_ver, NULL)
455+
TIDY_METHOD_MAP(diagnose, tidy_diagnose, arginfo_tidy_no_args)
456+
TIDY_METHOD_MAP(getRelease, tidy_get_release, arginfo_tidy_no_args)
457+
TIDY_METHOD_MAP(getConfig, tidy_get_config, arginfo_tidy_no_args)
458+
TIDY_METHOD_MAP(getStatus, tidy_get_status, arginfo_tidy_no_args)
459+
TIDY_METHOD_MAP(getHtmlVer, tidy_get_html_ver, arginfo_tidy_no_args)
449460
#if HAVE_TIDYOPTGETDOC
450461
TIDY_METHOD_MAP(getOptDoc, tidy_get_opt_doc, arginfo_tidy_get_opt_doc_method)
451462
#endif
452-
TIDY_METHOD_MAP(isXhtml, tidy_is_xhtml, NULL)
453-
TIDY_METHOD_MAP(isXml, tidy_is_xml, NULL)
454-
TIDY_METHOD_MAP(root, tidy_get_root, NULL)
455-
TIDY_METHOD_MAP(head, tidy_get_head, NULL)
456-
TIDY_METHOD_MAP(html, tidy_get_html, NULL)
457-
TIDY_METHOD_MAP(body, tidy_get_body, NULL)
463+
TIDY_METHOD_MAP(isXhtml, tidy_is_xhtml, arginfo_tidy_no_args)
464+
TIDY_METHOD_MAP(isXml, tidy_is_xml, arginfo_tidy_no_args)
465+
TIDY_METHOD_MAP(root, tidy_get_root, arginfo_tidy_no_args)
466+
TIDY_METHOD_MAP(head, tidy_get_head, arginfo_tidy_no_args)
467+
TIDY_METHOD_MAP(html, tidy_get_html, arginfo_tidy_no_args)
468+
TIDY_METHOD_MAP(body, tidy_get_body, arginfo_tidy_no_args)
458469
TIDY_DOC_ME(__construct, arginfo_tidy_construct)
459470
PHP_FE_END
460471
};
461472

462473
static const zend_function_entry tidy_funcs_node[] = {
463-
TIDY_NODE_ME(hasChildren, NULL)
464-
TIDY_NODE_ME(hasSiblings, NULL)
465-
TIDY_NODE_ME(isComment, NULL)
466-
TIDY_NODE_ME(isHtml, NULL)
467-
TIDY_NODE_ME(isText, NULL)
468-
TIDY_NODE_ME(isJste, NULL)
469-
TIDY_NODE_ME(isAsp, NULL)
470-
TIDY_NODE_ME(isPhp, NULL)
471-
TIDY_NODE_ME(getParent, NULL)
472-
TIDY_NODE_PRIVATE_ME(__construct, NULL)
474+
TIDY_NODE_ME(hasChildren, arginfo_tidy_no_args)
475+
TIDY_NODE_ME(hasSiblings, arginfo_tidy_no_args)
476+
TIDY_NODE_ME(isComment, arginfo_tidy_no_args)
477+
TIDY_NODE_ME(isHtml, arginfo_tidy_no_args)
478+
TIDY_NODE_ME(isText, arginfo_tidy_no_args)
479+
TIDY_NODE_ME(isJste, arginfo_tidy_no_args)
480+
TIDY_NODE_ME(isAsp, arginfo_tidy_no_args)
481+
TIDY_NODE_ME(isPhp, arginfo_tidy_no_args)
482+
TIDY_NODE_ME(getParent, arginfo_tidy_no_args)
483+
TIDY_NODE_PRIVATE_ME(__construct, arginfo_tidy_no_args)
473484
PHP_FE_END
474485
};
475486

0 commit comments

Comments
 (0)