Don't realloc user-provided buffer
authorJoão Abecasis <joao.abecasis@nokia.com>
Mon, 2 May 2011 11:46:40 +0000 (13:46 +0200)
committerOlivier Goffart <olivier.goffart@nokia.com>
Tue, 10 May 2011 10:54:55 +0000 (12:54 +0200)
When QTextBoundaryFinder doesn't own the buffer, don't realloc it and
get a new one instead.

Reviewed-by: Ritt Konstantin
(cherry picked from commit 320f172c851a4720299297c8b3b757eb1202c568)

src/corelib/tools/qtextboundaryfinder.cpp

index 34bc406..47319d4 100644 (file)
@@ -199,11 +199,11 @@ QTextBoundaryFinder &QTextBoundaryFinder::operator=(const QTextBoundaryFinder &o
     chars = other.chars;
     length = other.length;
     pos = other.pos;
-    freePrivate = true;
 
     QTextBoundaryFinderPrivate *newD = (QTextBoundaryFinderPrivate *)
-        realloc(d, length*sizeof(HB_CharAttributes));
+        realloc(freePrivate ? d : 0, length*sizeof(HB_CharAttributes));
     Q_CHECK_PTR(newD);
+    freePrivate = true;
     d = newD;
     memcpy(d, other.d, length*sizeof(HB_CharAttributes));