From 488b42462600fb4d04dddbc7fd3854072452a26a Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Sat, 15 Aug 2026 17:54:01 +0200 Subject: [PATCH] in the destructor make sure that we don't delete NULL items --- src/runtime/c/pgf/linearizer.cxx | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/runtime/c/pgf/linearizer.cxx b/src/runtime/c/pgf/linearizer.cxx index a1090fb0e..4dfe84201 100644 --- a/src/runtime/c/pgf/linearizer.cxx +++ b/src/runtime/c/pgf/linearizer.cxx @@ -323,7 +323,8 @@ PgfLinearizer::TreeLinNode::~TreeLinNode() { size_t n_fields = lin->lincat->fields.size(); for (size_t i = 0; i < n_fields; i++) { - delete items[i]; + if (items[i] != NULL) + delete items[i]; } delete[] items; }; @@ -395,13 +396,6 @@ bool PgfLinearizer::TreeLindefNode::resolve(PgfLinearizer *linearizer) rule_index++; } - for (size_t i = 0; i < lincat->fields.size(); i++) { - if (items[i] == NULL) { - rule_index = 0; - return false; - } - } - return true; } @@ -475,10 +469,11 @@ ref PgfLinearizer::TreeLindefNode::get_lincat(PgfLinearizer *lin PgfLinearizer::TreeLindefNode::~TreeLindefNode() { - if (lincat) { + if (lincat && items != NULL) { size_t n_fields = lincat->fields.size(); for (size_t i = 0; i < n_fields; i++) { - delete items[i]; + if (items[i] != NULL) + delete items[i]; } delete[] items; }