gbranden pushed a commit to branch master in repository groff. commit 875dc87033627d3bb695ec06b1b5e2937f509a45 Author: G. Branden Robinson <g.branden.robin...@gmail.com> AuthorDate: Sat Mar 15 01:52:14 2025 -0500
[troff]: Implement recursive node dumping (8f/9). Derive class `left_italic_corrected_node` from struct `container_node`. * src/roff/troff/node.h (class left_italic_corrected_node): Do it. Drop pointer-to-node member variable and declaration of destructor. * src/roff/troff/node.cpp (left_italic_corrected_node::left_italic_corrected_node): Migrate constructors to use new base class. (left_italic_corrected_node::~left_italic_corrected_node): Drop; our base class handles destruction of contained node(s). Changes `pline` request output as follows. -{"type": "left_italic_corrected_node", "diversion level": 0, "is_special_node": false, "hunits": 1970}, +{"type": "left_italic_corrected_node", "diversion level": 0, "is_special_node": false, "hunits": 1970, "contents": [{"type": "glyph_node", "diversion level": 0, "is_special_node": false, "character": "f"}]}, --- ChangeLog | 14 ++++++++++++++ src/roff/troff/node.cpp | 9 ++------- src/roff/troff/node.h | 5 +---- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 59a9e00d1..21b3700b2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2025-03-15 G. Branden Robinson <g.branden.robin...@gmail.com> + + [troff]: Derive class `left_italic_corrected_node` from struct + `container_node`. + + * src/roff/troff/node.h (class left_italic_corrected_node): Do + it. Drop pointer-to-node member variable and declaration of + destructor. + * src/roff/troff/node.cpp + (left_italic_corrected_node::left_italic_corrected_node): + Migrate constructors to use new base class. + (left_italic_corrected_node::~left_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 `break_char_node` from struct diff --git a/src/roff/troff/node.cpp b/src/roff/troff/node.cpp index d33d7c3b4..0e899dcb4 100644 --- a/src/roff/troff/node.cpp +++ b/src/roff/troff/node.cpp @@ -5816,14 +5816,14 @@ bool italic_corrected_node::is_tag() } left_italic_corrected_node::left_italic_corrected_node(node *xx) -: node(xx), nodes(0 /* nullptr */) +: container_node(xx) { } left_italic_corrected_node::left_italic_corrected_node(statem *s, int divlevel, node *xx) -: node(xx, s, divlevel), nodes(0 /* nullptr */) +: container_node(xx, s, divlevel) { } @@ -5834,11 +5834,6 @@ void left_italic_corrected_node::dump_properties() fflush(stderr); } -left_italic_corrected_node::~left_italic_corrected_node() -{ - delete nodes; -} - node *left_italic_corrected_node::merge_glyph_node(glyph_node *gn) { if (0 /* nullptr */ == nodes) { diff --git a/src/roff/troff/node.h b/src/roff/troff/node.h index ec7c7e9bc..88ac5278a 100644 --- a/src/roff/troff/node.h +++ b/src/roff/troff/node.h @@ -502,15 +502,12 @@ public: void vertical_extent(vunits *, vunits *); }; -// TODO: Derive from abstract class `container_node`. -class left_italic_corrected_node : public node { - node *nodes; +class left_italic_corrected_node : public container_node { hunits x; public: left_italic_corrected_node(node * /* xx */ = 0 /* nullptr */); left_italic_corrected_node(statem *, int, node * /* xx */ = 0 /* nullptr */); - ~left_italic_corrected_node(); void tprint(troff_output_file *); void ascii_print(ascii_output_file *); void asciify(macro *); _______________________________________________ groff-commit mailing list groff-commit@gnu.org https://lists.gnu.org/mailman/listinfo/groff-commit