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

Reply via email to