summaryrefslogtreecommitdiff
path: root/extra
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@kiwwwi.com.ar>2012-11-05 10:13:26 -0300
committerNicolás Reynolds <fauno@kiwwwi.com.ar>2012-11-05 10:13:26 -0300
commitd333dde0a4d6295e9530ab8e988efa1d654e8716 (patch)
treed48731194cdad2fb424ac33b6162669321a504b2 /extra
parent7d1ef93386fa989f029f02c870375cd8de31129d (diff)
parentc973e7aa43bb6c3bb4e25503eea40ddee63fcefd (diff)
Merge branch 'master' of ssh://vparabola/home/parabola/abslibre-pre-mips64el
Conflicts: community/blobby2/PKGBUILD community/gtk2hs-buildtools/PKGBUILD extra/qt/PKGBUILD
Diffstat (limited to 'extra')
-rw-r--r--extra/burp/PKGBUILD9
-rw-r--r--extra/kdevelop-php/PKGBUILD12
-rw-r--r--extra/kdevelop/PKGBUILD8
-rw-r--r--extra/kdevplatform/PKGBUILD9
-rw-r--r--extra/libnet/PKGBUILD29
-rw-r--r--extra/libtorrent-rasterbar/PKGBUILD4
-rw-r--r--extra/opencv/PKGBUILD29
-rw-r--r--extra/opencv/pkgconfig.patch35
-rw-r--r--extra/qt/PKGBUILD38
-rw-r--r--extra/qt/fix-qtscript-crash.patch34
-rw-r--r--extra/qt/qsortfilterproxymodel.patch63
11 files changed, 217 insertions, 53 deletions
diff --git a/extra/burp/PKGBUILD b/extra/burp/PKGBUILD
index e8e1954b6..17caf175e 100644
--- a/extra/burp/PKGBUILD
+++ b/extra/burp/PKGBUILD
@@ -1,8 +1,8 @@
-# $Id: PKGBUILD 162259 2012-06-24 15:44:41Z dreisner $
+# $Id: PKGBUILD 170189 2012-11-04 15:22:01Z dreisner $
# Maintainer: Dave Reisner <d@falconindy.com>
pkgname=burp
-pkgver=1.6.9
+pkgver=2
pkgrel=1
pkgdesc="A simple AUR uploader"
arch=('i686' 'x86_64' 'mips64el')
@@ -10,8 +10,9 @@ url="http://github.com/falconindy/burp"
license=('GPL')
depends=('glibc' 'curl')
makedepends=('perl')
-source=("https://github.com/downloads/falconindy/$pkgname/$pkgname-$pkgver.tar.gz")
-md5sums=('3ae883cf6283e860f613668619b8d3ce')
+source=("https://github.com/downloads/falconindy/$pkgname/$pkgname-$pkgver.tar.gz"{,.sig})
+md5sums=('390436816f38d43b3ffb1079add4fa8e'
+ '2b16c8187c299d249446b251fe762aed')
build() {
make -C "$pkgname-$pkgver"
diff --git a/extra/kdevelop-php/PKGBUILD b/extra/kdevelop-php/PKGBUILD
index ec316fd43..f08f3fff7 100644
--- a/extra/kdevelop-php/PKGBUILD
+++ b/extra/kdevelop-php/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 169709 2012-10-27 00:39:03Z andrea $
+# $Id: PKGBUILD 170180 2012-11-04 07:52:57Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
pkgname=kdevelop-php
-pkgver=1.4.0
-_pkgver=4.4.0
-pkgrel=2
+pkgver=1.4.1
+_pkgver=4.4.1
+pkgrel=1
pkgdesc="PHP language and documentation plugin for KDevelop/Quanta"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.kdevelop.org/"
@@ -14,8 +14,8 @@ makedepends=('cmake' 'automoc4' 'kdevelop-pg-qt')
replaces=('kdevelop-php-docs')
conflicts=('kdevelop-php-docs')
source=(http://download.kde.org/stable/kdevelop/${_pkgver}/src/${pkgname}-{,docs-}${pkgver}.tar.bz2)
-sha1sums=('c899aae94755dbc3f4fb72edfcb5b01a9f0eca43'
- 'd06df690ea70d02707388851b61077bea8f9db1d')
+sha1sums=('f3523acfc27d0fd68c2b1f970b4ac42dcda38ced'
+ '3a1b20c4527abf489df20a23177dd9befc2e1d3c')
build() {
mkdir build
diff --git a/extra/kdevelop/PKGBUILD b/extra/kdevelop/PKGBUILD
index b61300f51..7e50d20e7 100644
--- a/extra/kdevelop/PKGBUILD
+++ b/extra/kdevelop/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 169768 2012-10-28 09:27:58Z andrea $
+# $Id: PKGBUILD 170179 2012-11-04 07:52:07Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
pkgname=kdevelop
-pkgver=4.4.0
-pkgrel=2
+pkgver=4.4.1
+pkgrel=1
pkgdesc="A C/C++ development environment for KDE"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.kdevelop.org/"
@@ -18,7 +18,7 @@ optdepends=('kdesdk-okteta: hex editor'
'qt-doc: qt documentation integration')
install="${pkgname}.install"
source=("http://download.kde.org/stable/${pkgname}/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
-sha1sums=('271a6ab3dd6063175e9ce18810bed7437d451ecf')
+sha1sums=('31bd10ffdbf2a6f2b3a75ecc8c1877d1bcc5b685')
build() {
mkdir build
diff --git a/extra/kdevplatform/PKGBUILD b/extra/kdevplatform/PKGBUILD
index 1726a70ea..10f7422cc 100644
--- a/extra/kdevplatform/PKGBUILD
+++ b/extra/kdevplatform/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 169569 2012-10-23 17:17:52Z andrea $
+# $Id: PKGBUILD 170181 2012-11-04 07:58:57Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
pkgname=kdevplatform
-pkgver=1.4.0
-_pkgver=4.4.0
+pkgver=1.4.1
+_pkgver=4.4.1
pkgrel=1
pkgdesc="A C/C++ development platform for KDE"
arch=('i686' 'x86_64' 'mips64el')
@@ -15,13 +15,14 @@ optdepends=("kdesdk-kompare: difference checking")
makedepends=('cmake' 'automoc4' 'boost')
install=${pkgname}.install
source=("http://download.kde.org/stable/kdevelop/${_pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
-sha1sums=('2db4fc073385c49d82de526273272da648a0af60')
+sha1sums=('48f2b40256e96aa015fa40978d5a9a93056fba75')
build() {
mkdir build
cd build
cmake ../${pkgname}-${pkgver} \
-DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_RPATH=ON \
-DCMAKE_BUILD_TYPE=Release
make
}
diff --git a/extra/libnet/PKGBUILD b/extra/libnet/PKGBUILD
new file mode 100644
index 000000000..1c8cbb09c
--- /dev/null
+++ b/extra/libnet/PKGBUILD
@@ -0,0 +1,29 @@
+# $Id: PKGBUILD 170191 2012-11-04 17:11:22Z giovanni $
+# Maintainer:
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=libnet
+pkgver=1.1.6
+pkgrel=1
+pkgdesc="A library which provides API for commonly used low-level net functions"
+arch=('i686' 'x86_64')
+url="http://sourceforge.net/projects/libnet-dev/"
+license=('BSD')
+depends=('glibc' 'sh')
+options=('!libtool')
+source=("http://downloads.sourceforge.net/libnet-dev/${pkgname}-${pkgver}.tar.gz")
+md5sums=('710296fe424a49344e5fcc0d09e53317')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make CFLAGS="${CFLAGS} -fPIC"
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -Dm644 doc/COPYING \
+ "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+}
diff --git a/extra/libtorrent-rasterbar/PKGBUILD b/extra/libtorrent-rasterbar/PKGBUILD
index b83b9babd..6b4e246a8 100644
--- a/extra/libtorrent-rasterbar/PKGBUILD
+++ b/extra/libtorrent-rasterbar/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 169612 2012-10-24 12:56:39Z ibiru $
+# $Id: PKGBUILD 170197 2012-11-04 18:02:05Z ibiru $
# Maintainer : Ionut Biru <ibiru@archlinux.org>
# Contributor: Hugo Doria <hugo@archlinux.org>
@@ -18,7 +18,7 @@ sha1sums=('dde29c7a51392d9098de23e2e69a993a5c380016')
build() {
cd $pkgname-$pkgver
- PYTHON2=/usr/bin/python2 ./configure --prefix=/usr \
+ PYTHON=/usr/bin/python2 ./configure --prefix=/usr \
--enable-python-binding \
--with-libgeoip=system
make
diff --git a/extra/opencv/PKGBUILD b/extra/opencv/PKGBUILD
index 7fbf1ca7d..e0fa887dd 100644
--- a/extra/opencv/PKGBUILD
+++ b/extra/opencv/PKGBUILD
@@ -1,37 +1,32 @@
-# $Id: PKGBUILD 169755 2012-10-27 23:42:14Z eric $
+# $Id: PKGBUILD 170195 2012-11-04 17:25:47Z schiv $
# Maintainer: Ray Rashif <schiv@archlinux.org>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
pkgbase=opencv
pkgname=('opencv' 'opencv-docs' 'opencv-samples')
_realname=OpenCV
-pkgver=2.4.2
-pkgrel=5
+pkgver=2.4.3
+pkgrel=1
pkgdesc="Open Source Computer Vision Library"
arch=('i686' 'x86_64' 'mips64el')
license=('BSD')
url="http://opencv.org/"
-depends=('jasper' 'gstreamer0.10-base' 'openexr>=1.7.0'
- 'gtk2' 'xine-lib' 'libdc1394' 'v4l-utils' 'ilmbase>=1.0.3')
+depends=('jasper' 'gstreamer0.10-base' 'gtk2'
+ 'xine-lib' 'libdc1394' 'openexr')
makedepends=('cmake' 'python2-numpy' 'eigen2')
optdepends=('opencv-docs'
'opencv-samples'
'eigen2'
'python2-numpy: Python 2.x interface')
-options=('!libtool')
-source=("http://downloads.sourceforge.net/opencvlibrary/$_realname-${pkgver}.tar.bz2")
-md5sums=('059ef86fc1724d69b75832a0d2929ff5')
+source=("http://downloads.sourceforge.net/opencvlibrary/$_realname-${pkgver}.tar.bz2"
+ 'pkgconfig.patch')
+md5sums=('c0a5af4ff9d0d540684c0bf00ef35dbe'
+ 'cb916260b5ec594fe7a0cc2e54fc569f')
_cmakeopts=('-D CMAKE_BUILD_TYPE=Release'
'-D CMAKE_INSTALL_PREFIX=/usr'
'-D CMAKE_SKIP_RPATH=ON'
'-D BUILD_TESTS=OFF'
- '-D ENABLE_SSE=ON'
- '-D ENABLE_SSE2=ON'
- '-D ENABLE_SSE3=OFF'
- '-D ENABLE_SSSE3=OFF'
- '-D ENABLE_SSE41=OFF'
- '-D ENABLE_SSE42=OFF'
'-D BUILD_EXAMPLES=ON'
'-D INSTALL_C_EXAMPLES=ON'
'-D INSTALL_PYTHON_EXAMPLES=ON'
@@ -49,9 +44,9 @@ _cmakeopts=('-D CMAKE_BUILD_TYPE=Release'
build() {
cd "$srcdir/$_realname-$pkgver"
- # x64, i.e "Athlon64" and upwards, can use SSE3
- [ $CARCH = x86_64 ] && \
- _cmakeopts=${_cmakeopts[@]/ENABLE_SSE3=OFF/ENABLE_SSE3=ON}
+ # fix pkg-config mess
+ # see https://bugs.archlinux.org/task/32430
+ patch -Np1 -i "$srcdir/pkgconfig.patch"
cmake ${_cmakeopts[@]} .
diff --git a/extra/opencv/pkgconfig.patch b/extra/opencv/pkgconfig.patch
new file mode 100644
index 000000000..84d268e61
--- /dev/null
+++ b/extra/opencv/pkgconfig.patch
@@ -0,0 +1,35 @@
+diff -Nbaur OpenCV-2.4.3.orig/cmake/OpenCVGenPkgconfig.cmake OpenCV-2.4.3/cmake/OpenCVGenPkgconfig.cmake
+--- OpenCV-2.4.3.orig/cmake/OpenCVGenPkgconfig.cmake 2012-11-04 08:40:14.243505926 +0000
++++ OpenCV-2.4.3/cmake/OpenCVGenPkgconfig.cmake 2012-11-04 08:40:42.286649120 +0000
+@@ -10,7 +10,7 @@
+ # -------------------------------------------------------------------------------------------
+ set(prefix "${CMAKE_INSTALL_PREFIX}")
+ set(exec_prefix "\${prefix}")
+-set(libdir "") #TODO: need link paths for OpenCV_EXTRA_COMPONENTS
++set(libdir "\${prefix}/${OPENCV_LIB_INSTALL_PATH}")
+ set(includedir "\${prefix}/${OPENCV_INCLUDE_INSTALL_PATH}")
+ set(VERSION ${OPENCV_VERSION})
+
+@@ -36,10 +36,11 @@
+ ocv_list_reverse(OpenCV_EXTRA_COMPONENTS)
+
+ #build the list of components
+-set(OpenCV_LIB_COMPONENTS_ "")
++set(OpenCV_LIB_COMPONENTS_ "-L\${libdir}")
+ foreach(CVLib ${OpenCV_LIB_COMPONENTS})
+ get_target_property(libpath ${CVLib} LOCATION_${CMAKE_BUILD_TYPE})
+ get_filename_component(libname "${libpath}" NAME)
++ get_filename_component(lname "${libpath}" NAME_WE)
+
+ if(INSTALL_TO_MANGLED_PATHS)
+ set(libname "${libname}.${OPENCV_VERSION}")
+@@ -52,7 +53,8 @@
+ set(installDir "${OPENCV_LIB_INSTALL_PATH}")
+ endif()
+
+- set(OpenCV_LIB_COMPONENTS_ "${OpenCV_LIB_COMPONENTS_} \${exec_prefix}/${installDir}/${libname}")
++ string(REPLACE "libopencv" "-lopencv" lname "${lname}")
++ set(OpenCV_LIB_COMPONENTS_ "${OpenCV_LIB_COMPONENTS_} ${lname}")
+ endforeach()
+
+ # add extra dependencies required for OpenCV
diff --git a/extra/qt/PKGBUILD b/extra/qt/PKGBUILD
index 111fad187..046413ade 100644
--- a/extra/qt/PKGBUILD
+++ b/extra/qt/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 167191 2012-09-27 12:38:07Z andrea $
+# $Id: PKGBUILD 170186 2012-11-04 10:04:35Z andrea $
# Maintainer: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgbase=qt
pkgname=('qt' 'qt-private-headers')
pkgver=4.8.3
-pkgrel=4
+pkgrel=5
arch=('i686' 'x86_64' 'mips64el')
url='http://qt-project.org/'
license=('GPL3' 'LGPL')
@@ -21,9 +21,10 @@ source=("http://releases.qt-project.org/qt4/source/${_pkgfqn}.tar.gz"
'qtconfig.desktop'
'improve-cups-support.patch'
'fix-crash-in-assistant.patch'
- 'undo-fix-jit-crash-on-x86_64.patch'
- 'declarative-fix-sigbus.patch'
- 'disable-ssl-compression.patch')
+ 'declarative-fix-sigbus.patch'
+ 'disable-ssl-compression.patch'
+ 'fix-qtscript-crash.patch'
+ 'qsortfilterproxymodel.patch')
md5sums=('a663b6c875f8d7caa8ac9c30e4a4ec3b'
'fc211414130ab2764132e7370f8e5caa'
'85179f5e0437514f8639957e1d8baf62'
@@ -31,12 +32,13 @@ md5sums=('a663b6c875f8d7caa8ac9c30e4a4ec3b'
'6b771c8a81dd90b45e8a79afa0e5bbfd'
'c439c7731c25387352d8453ca7574971'
'57590084078b6379f0501f7728b02ae2'
- '094e5a4e30e52423c77daa4a9c782df5'
- 'aac963d05a9d5733e2bfce9e26607f51'
- '94e9e433342018bf35e8d6d968b7432c')
+ 'aac963d05a9d5733e2bfce9e26607f51'
+ '94e9e433342018bf35e8d6d968b7432c'
+ '71579422635e9343665de1c1ba5a3f91'
+ 'cd550cd628d10459128ca5f231ca6d3f')
build() {
- cd "${srcdir}"/${_pkgfqn}
+ cd ${_pkgfqn}
# MIPS N32-specific fix, shouldn't affect correctness on other platforms.
patch -Np1 -i "${srcdir}/declarative-fix-sigbus.patch"
@@ -47,11 +49,14 @@ build() {
# (FS#29469)
patch -p1 -i "${srcdir}"/fix-crash-in-assistant.patch
- # (FS#31654)
- patch -Rp1 -i "${srcdir}"/undo-fix-jit-crash-on-x86_64.patch
-
# Security fix
patch -p1 -i "${srcdir}"/disable-ssl-compression.patch
+
+ # QTBUG#27322
+ patch -p1 -i "${srcdir}"/fix-qtscript-crash.patch
+
+ # QTBUG#27122
+ patch -p1 -i "${srcdir}"/qsortfilterproxymodel.patch
export QT4DIR="${srcdir}"/${_pkgfqn}
export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH}
@@ -105,10 +110,11 @@ package_qt() {
[ "$CARCH" != "mips64el" ] && optdepends+=('libfbclient: Firebird/iBase driver')
optdepends+=('libxinerama: Xinerama support'
'libxcursor: Xcursor support'
- 'libxfixes: Xfixes support')
+ 'libxfixes: Xfixes support'
+ 'icu: Unicode support')
install='qt.install'
- cd "${srcdir}"/${_pkgfqn}
+ cd ${_pkgfqn}
make INSTALL_ROOT="${pkgdir}" install
# install missing icons and desktop files
@@ -148,11 +154,11 @@ package_qt-private-headers(){
install -d "${pkgdir}"/usr/src/{corelib,declarative,gui,script}
for i in QtCore QtDeclarative QtGui QtScript; do
- cp -r "${srcdir}"/${_pkgfqn}/include/${i}/private/ \
+ cp -r ${_pkgfqn}/include/${i}/private/ \
"${pkgdir}"/usr/include/${i}/
done
for i in corelib declarative gui script; do
- cp -r "${srcdir}"/${_pkgfqn}/src/${i} "${pkgdir}"/usr/src/
+ cp -r ${_pkgfqn}/src/${i} "${pkgdir}"/usr/src/
done
}
diff --git a/extra/qt/fix-qtscript-crash.patch b/extra/qt/fix-qtscript-crash.patch
new file mode 100644
index 000000000..97b1cc62d
--- /dev/null
+++ b/extra/qt/fix-qtscript-crash.patch
@@ -0,0 +1,34 @@
+From e6b7178bc2e62a37b4737695bced1b46bced9215 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C4=99drzej=20Nowacki?= <jedrzej.nowacki@digia.com>
+Date: Mon, 22 Oct 2012 15:17:19 +0200
+Subject: [PATCH] Fix mmap usage.
+
+Add missing MAP_NORESERVE and fix error checking.
+
+Special thanks to Olivier JG for debugging the issue.
+
+Task-number: QTBUG-27322
+Change-Id: Ia9f4aa80415f0127318714912b524131a5b0f18a
+Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
+---
+ .../JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
+index 16d0fb1..e1237e4 100644
+--- a/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
++++ b/src/3rdparty/javascriptcore/JavaScriptCore/jit/ExecutableAllocatorFixedVMPool.cpp
+@@ -305,8 +305,8 @@ public:
+ randomLocation += (1 << 24);
+ randomLocation <<= 21;
+ #endif
+- m_base = mmap(reinterpret_cast<void*>(randomLocation), m_totalHeapSize, INITIAL_PROTECTION_FLAGS, MAP_PRIVATE | MAP_ANON, VM_TAG_FOR_EXECUTABLEALLOCATOR_MEMORY, 0);
+- if (!m_base)
++ m_base = mmap(reinterpret_cast<void*>(randomLocation), m_totalHeapSize, INITIAL_PROTECTION_FLAGS, MAP_PRIVATE | MAP_ANON | MAP_NORESERVE, VM_TAG_FOR_EXECUTABLEALLOCATOR_MEMORY, 0);
++ if (m_base == MAP_FAILED)
+ CRASH();
+
+ // For simplicity, we keep all memory in m_freeList in a 'released' state.
+--
+1.8.0
+
diff --git a/extra/qt/qsortfilterproxymodel.patch b/extra/qt/qsortfilterproxymodel.patch
new file mode 100644
index 000000000..33770e47d
--- /dev/null
+++ b/extra/qt/qsortfilterproxymodel.patch
@@ -0,0 +1,63 @@
+From 989e6c5ee6f3e38b24632ec5caf49c5b03d17aed Mon Sep 17 00:00:00 2001
+From: Stephen Kelly <stephen.kelly@kdab.com>
+Date: Fri, 14 Sep 2012 15:42:34 +0200
+Subject: [PATCH] Fix crash when invalidating a QSortFilterProxyModel
+
+Backport of d7a15fbfd93fb566c7793596ea50d8786b9eb654 from qtbase.
+
+Task-number: QTBUG-27122
+Change-Id: I0b1eda292fd9648e6f08629f7a069b66bb8b59e8
+Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
+---
+ src/gui/itemviews/qsortfilterproxymodel.cpp | 28 +++++++---
+ .../tst_qsortfilterproxymodel.cpp | 61 ++++++++++++++++++++++
+ 2 files changed, 83 insertions(+), 6 deletions(-)
+
+diff --git a/src/gui/itemviews/qsortfilterproxymodel.cpp b/src/gui/itemviews/qsortfilterproxymodel.cpp
+index d937b63..9fe224e 100644
+--- a/src/gui/itemviews/qsortfilterproxymodel.cpp
++++ b/src/gui/itemviews/qsortfilterproxymodel.cpp
+@@ -1036,18 +1036,34 @@ void QSortFilterProxyModelPrivate::filter_changed(const QModelIndex &source_pare
+ Mapping *m = it.value();
+ QSet<int> rows_removed = handle_filter_changed(m->proxy_rows, m->source_rows, source_parent, Qt::Vertical);
+ QSet<int> columns_removed = handle_filter_changed(m->proxy_columns, m->source_columns, source_parent, Qt::Horizontal);
+- QVector<QModelIndex> mappedChildren = m->mapped_children;
+- QVector<QModelIndex>::iterator it2 = mappedChildren.end();
+- while (it2 != mappedChildren.begin()) {
+- --it2;
+- const QModelIndex source_child_index = *it2;
++
++ // We need to iterate over a copy of m->mapped_children because otherwise it may be changed by other code, invalidating
++ // the iterator it2.
++ // The m->mapped_children vector can be appended to with indexes which are no longer filtered
++ // out (in create_mapping) when this function recurses for child indexes.
++ const QVector<QModelIndex> mappedChildren = m->mapped_children;
++ QVector<int> indexesToRemove;
++ for (int i = 0; i < mappedChildren.size(); ++i) {
++ const QModelIndex source_child_index = mappedChildren.at(i);
+ if (rows_removed.contains(source_child_index.row()) || columns_removed.contains(source_child_index.column())) {
+- it2 = mappedChildren.erase(it2);
++ indexesToRemove.push_back(i);
+ remove_from_mapping(source_child_index);
+ } else {
+ filter_changed(source_child_index);
+ }
+ }
++ QVector<int>::const_iterator removeIt = indexesToRemove.constEnd();
++ const QVector<int>::const_iterator removeBegin = indexesToRemove.constBegin();
++
++ // We can't just remove these items from mappedChildren while iterating above and then
++ // do something like m->mapped_children = mappedChildren, because mapped_children might
++ // be appended to in create_mapping, and we would lose those new items.
++ // Because they are always appended in create_mapping, we can still remove them by
++ // position here.
++ while (removeIt != removeBegin) {
++ --removeIt;
++ m->mapped_children.remove(*removeIt);
++ }
+ }
+
+ /*!
+--
+1.8.0
+