From 86d6d8caec690771fdb5d0bfcdcc859fafb24c68 Mon Sep 17 00:00:00 2001
From: Khaled Noaman <knoaman@apache.org>
Date: Sun, 25 May 2003 21:42:41 +0000
Subject: [PATCH] Allocate/Deallocate Context::xxx only when necessary.

git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@175046 13f79535-47bb-0310-9956-ffa450edef68
---
 src/xercesc/util/regx/RegularExpression.cpp | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/xercesc/util/regx/RegularExpression.cpp b/src/xercesc/util/regx/RegularExpression.cpp
index 764ff2d3e..9990f4d5c 100644
--- a/src/xercesc/util/regx/RegularExpression.cpp
+++ b/src/xercesc/util/regx/RegularExpression.cpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.13  2003/05/25 21:42:41  knoaman
+ * Allocate/Deallocate Context::xxx only when necessary.
+ *
  * Revision 1.12  2003/05/18 14:02:06  knoaman
  * Memory manager implementation: pass per instance manager.
  *
@@ -177,7 +180,9 @@ RegularExpression::Context::Context(MemoryManager* const manager) :
 
 RegularExpression::Context::~Context()
 {
-	fMemoryManager->deallocate(fOffsets);//delete [] fOffsets;
+	if (fOffsets)
+        fMemoryManager->deallocate(fOffsets);//delete [] fOffsets;
+
     fMemoryManager->deallocate(fString);//delete [] fString;
 
 	if (fAdoptMatch)
@@ -191,7 +196,9 @@ void RegularExpression::Context::reset(const XMLCh* const string
                                        , const int start, const int limit
                                        , const int noClosures)
 {
-    fMemoryManager->deallocate(fString);//delete [] fString;
+    if (fString)
+        fMemoryManager->deallocate(fString);//delete [] fString;
+
     fString = XMLString::replicate(string, fMemoryManager);
 	fStart = start;
 	fLimit = limit;
@@ -201,7 +208,8 @@ void RegularExpression::Context::reset(const XMLCh* const string
 		delete fMatch;
 	fMatch = 0;
 
-	if (fOffsets == 0 || fSize != noClosures) {
+
+	if (fSize != noClosures) {
 
 		if (fOffsets)
             fMemoryManager->deallocate(fOffsets);//delete [] fOffsets;
-- 
GitLab