gbranden pushed a commit to branch master in repository groff. commit 424b8e453aab357323984e4f6a4bad537784d54d Author: G. Branden Robinson <g.branden.robin...@gmail.com> AuthorDate: Tue Mar 4 07:26:41 2025 -0600
[troff]: Implement recursive node dumping (8d/9). Derive class `italic_corrected_node` from struct `container_node`. * src/roff/troff/node.h (class italic_corrected_node): Do it. Drop pointer-to-node member variable and declaration of destructor. * src/roff/troff/node.cpp (italic_corrected_node::italic_corrected_node): Migrate constructors to use new base class. (italic_corrected_node::~italic_corrected_node): Drop; our base class handles destruction of contained node(s). Changes `pline` request output as follows. -{"type": "italic_corrected_node", "diversion level": 0, "is_special_node": false, "hunits": 1960}, +{"type": "italic_corrected_node", "diversion level": 0, "is_special_node": false, "hunits": 1960, "contents": [{"type": "glyph_node", "diversion level": 0, "is_special_node": false, "character": "f"}]}, --- ChangeLog | 14 ++++++++++++++ src/roff/troff/node.cpp | 12 ++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7094d2080..65f58d14f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2025-03-04 G. Branden Robinson <g.branden.robin...@gmail.com> + + [troff]: Derive class `italic_corrected_node` from struct + `container_node`. + + * src/roff/troff/node.h (class italic_corrected_node): Do it. + Drop pointer-to-node member variable and declaration of + destructor. + * src/roff/troff/node.cpp + (italic_corrected_node::italic_corrected_node): Migrate + constructors to use new base class. + (italic_corrected_node::~italic_corrected_node): Drop; our base + class handles destruction of contained node(s). + 2025-03-04 G. Branden Robinson <g.branden.robin...@gmail.com> [troff]: Derive class `zero_width_node` from struct diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp index 58c89e97d..398d4abab 100644 --- a/src/roff/troff/node.cpp +++ b/src/roff/troff/node.cpp @@ -2771,14 +2771,11 @@ hunits dbreak_node::subscript_correction() return none ? none->subscript_correction() : H0; } -// TODO: Derive from abstract class `container_node`. -class italic_corrected_node : public node { - node *nodes; +class italic_corrected_node : public container_node { hunits x; public: italic_corrected_node(node *, hunits, statem *, int, node * = 0 /* nullptr */); - ~italic_corrected_node(); node *copy(); void ascii_print(ascii_output_file *); void asciify(macro *); @@ -2818,7 +2815,7 @@ node *node::add_italic_correction(hunits *wd) italic_corrected_node::italic_corrected_node(node *nn, hunits xx, statem *s, int divlevel, node *p) -: node(p, s, divlevel), nodes(nn), x(xx) +: container_node(p, s, divlevel, nn), x(xx) { assert(nodes != 0 /* nullptr */); } @@ -2830,11 +2827,6 @@ void italic_corrected_node::dump_properties() fflush(stderr); } -italic_corrected_node::~italic_corrected_node() -{ - delete nodes; -} - node *italic_corrected_node::copy() { return new italic_corrected_node(nodes->copy(), x, state, _______________________________________________ groff-commit mailing list groff-commit@gnu.org https://lists.gnu.org/mailman/listinfo/groff-commit