From 47d5df1d7d0259729fe1e627e3af2135ca788db5 Mon Sep 17 00:00:00 2001 From: "Jordan K. Hubbard" Date: Tue, 14 Feb 1995 12:35:03 +0000 Subject: [PATCH] The destructor always assumed that it would be called on objects created from ONE constructor routine. This was bogus - there is also a system provided constructor which does not allocate a pattern buffer. Make less assumptions. --- gnu/lib/libg++/libg++/Regex.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gnu/lib/libg++/libg++/Regex.cc b/gnu/lib/libg++/libg++/Regex.cc index 37e564b8c1c..65f03a06bd7 100644 --- a/gnu/lib/libg++/libg++/Regex.cc +++ b/gnu/lib/libg++/libg++/Regex.cc @@ -39,10 +39,13 @@ extern "C" { Regex::~Regex() { - if (buf->buffer) free(buf->buffer); - if (buf->fastmap) free(buf->fastmap); - delete(buf); - delete(reg); + if (buf) { + if (buf->buffer) free(buf->buffer); + if (buf->fastmap) free(buf->fastmap); + delete(buf); + } + if (reg) + delete(reg); } Regex::Regex(const char* t, int fast, int bufsize,