Fixes two memleaks.

-- Kenneth
From 4cd88904ea50619dbc0965ea2683ea270a74013b Mon Sep 17 00:00:00 2001
From: Kenneth Venken <kenneth.ven...@gmail.com>
Date: Wed, 26 Jan 2011 19:39:13 +0100
Subject: [PATCH] cpp cleanliness: fixed some memleaks

---
 fpicker/source/unx/kde/kdecommandthread.cxx |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/fpicker/source/unx/kde/kdecommandthread.cxx b/fpicker/source/unx/kde/kdecommandthread.cxx
index 499c3ad..1eef244 100644
--- a/fpicker/source/unx/kde/kdecommandthread.cxx
+++ b/fpicker/source/unx/kde/kdecommandthread.cxx
@@ -128,6 +128,7 @@ void KDECommandThread::handleCommand( const QString &rString, bool &bQuit )
         bQuit = true;
         kapp->exit();
         kapp->wakeUpGuiThread();
+        delete pTokens, pTokens = NULL;
     }
     else
         kapp->postEvent( m_pObject, new KDECommandEvent( qCommand, pTokens ) );
-- 
1.7.1

From 736d39d19d4c0bb6e6f973efdf5d3091e41d3741 Mon Sep 17 00:00:00 2001
From: Kenneth Venken <kenneth.ven...@gmail.com>
Date: Wed, 26 Jan 2011 20:38:17 +0100
Subject: [PATCH] cpp cleanliness: fixed some memleaks

---
 i18npool/source/breakiterator/gendict.cxx |   24 ++++++++++++------------
 1 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/i18npool/source/breakiterator/gendict.cxx b/i18npool/source/breakiterator/gendict.cxx
index 31aaeaa..f035da3 100644
--- a/i18npool/source/breakiterator/gendict.cxx
+++ b/i18npool/source/breakiterator/gendict.cxx
@@ -36,6 +36,8 @@
 #include <sal/types.h>
 #include <rtl/strbuf.hxx>
 #include <rtl/ustring.hxx>
+#include <vector>
+using std::vector;
 
 using namespace ::rtl;
 
@@ -71,7 +73,8 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
     fprintf(cfp, "extern \"C\" {\n");
 
     sal_Int32 count, i, j;
-    sal_Int32 lenArrayCurr = 0, lenArrayCount = 0, lenArrayLen = 0, *lenArray = NULL, charArray[0x10000];
+    sal_Int32 lenArrayCurr = 0, charArray[0x10000];
+    vector<sal_Int32> lenArray;
     sal_Bool exist[0x10000];
     for (i = 0; i < 0x10000; i++) {
         exist[i] = sal_False;
@@ -97,15 +100,13 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
 
         if (*u != current) {
         if (*u < current)
-        printf("u %x, current %x, count %d, lenArrayCount %d\n", *u, current,
-                    sal::static_int_cast<int>(count), sal::static_int_cast<int>(lenArrayCount));
+        printf("u %x, current %x, count %d, lenArray.size() %d\n", *u, current,
+                    sal::static_int_cast<int>(count), sal::static_int_cast<int>(lenArray.size()));
         current = *u;
-        charArray[current] = lenArrayCount;
+        charArray[current] = lenArray.size();
         }
 
-        if (lenArrayLen <= lenArrayCount+1)
-        lenArray = (sal_Int32*) realloc(lenArray, (lenArrayLen += 1000) * sizeof(sal_Int32));
-        lenArray[lenArrayCount++] = lenArrayCurr;
+        lenArray.push_back(lenArrayCurr);
 
         exist[u[0]] = sal_True;
         for (i = 1; i < len; i++) {		// start from second character, 
@@ -116,15 +117,16 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
         fprintf(cfp, "0x%04x, ", u[i]);
         }
     }
-    lenArray[lenArrayCount++] = lenArrayCurr; // store last ending pointer
-    charArray[current+1] = lenArrayCount;
+    lenArray.push_back( lenArrayCurr ); // store last ending pointer
+
+    charArray[current+1] = lenArray.size();
     fprintf(cfp, "\n};\n");
 
     // generate lenArray 
     fprintf(cfp, "static const sal_Int32 lenArray[] = {\n\t");
     count = 1;
     fprintf(cfp, "0x%x, ", 0); // insert one slat for skipping 0 in index2 array.
-    for (i = 0; i < lenArrayCount; i++) {
+    for (i = 0; i < lenArray.size(); i++) {
         fprintf(cfp, "0x%lx, ", static_cast<long unsigned int>(lenArray[i]));
         if (count == 0xf) {
         count = 0;
@@ -133,8 +135,6 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
     }
     fprintf(cfp, "\n};\n");
 
-    free(lenArray);
-
     // generate index1 array
     fprintf (cfp, "static const sal_Int16 index1[] = {\n\t");
     sal_Int16 set[0x100];
-- 
1.7.1

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to