From 7a7ea0219f6ebb9f7833649ec76e077796be1843 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 21 Aug 2009 20:11:14 +0200 Subject: Fix trivial QList detaching: QListData::detach2() *must* memcpy. Qt 4.5 did that and the node_copy function depended on it. I have some patches from Lars that introduce detach3() and try to improve performance a bit more. --- src/corelib/tools/qlist.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/tools/qlist.cpp b/src/corelib/tools/qlist.cpp index d954160..58406b9 100644 --- a/src/corelib/tools/qlist.cpp +++ b/src/corelib/tools/qlist.cpp @@ -94,7 +94,6 @@ QListData::Data *QListData::detach() /*! * Detaches the QListData by reallocating new memory. * Returns the old (shared) data, it is up to the caller to deref() and free() - * For the new data node_copy needs to be called. * * \internal */ @@ -104,6 +103,7 @@ QListData::Data *QListData::detach2() Data* t = static_cast(qMalloc(DataHeaderSize + x->alloc * sizeof(void *))); Q_CHECK_PTR(t); + ::memcpy(t, x, DataHeaderSize + x->alloc * sizeof(void *)); t->ref = 1; t->sharable = true; t->alloc = x->alloc; -- cgit v0.12