[arch-commits] Commit in qt5-declarative/repos/extra-x86_64 (3 files)

Antonio Rojas arojas at archlinux.org
Fri Aug 17 14:27:32 UTC 2018


    Date: Friday, August 17, 2018 @ 14:27:31
  Author: arojas
Revision: 331724

archrelease: copy trunk to extra-x86_64

Added:
  qt5-declarative/repos/extra-x86_64/PKGBUILD
    (from rev 331722, qt5-declarative/trunk/PKGBUILD)
  qt5-declarative/repos/extra-x86_64/qtbug-68894.patch
    (from rev 331722, qt5-declarative/trunk/qtbug-68894.patch)
Deleted:
  qt5-declarative/repos/extra-x86_64/PKGBUILD

-------------------+
 PKGBUILD          |  101 +++++++++++++++++++++++++++-------------------------
 qtbug-68894.patch |  101 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 154 insertions(+), 48 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2018-08-17 14:27:27 UTC (rev 331723)
+++ PKGBUILD	2018-08-17 14:27:31 UTC (rev 331724)
@@ -1,48 +0,0 @@
-# $Id: PKGBUILD 240297 2015-06-03 10:22:03Z fyan $
-# Maintainer: Felix Yan <felixonmars at archlinux.org>
-# Contributor: Andrea Scarpino <andrea at archlinux.org>
-
-pkgname=qt5-declarative
-_qtver=5.11.1
-pkgver=${_qtver/-/}
-pkgrel=1
-arch=('x86_64')
-url='http://qt-project.org/'
-license=('GPL3' 'LGPL3' 'FDL' 'custom')
-pkgdesc='Classes for QML and JavaScript languages'
-depends=('qt5-xmlpatterns')
-makedepends=('python')
-groups=('qt' 'qt5')
-conflicts=('qtchooser' 'qt5-declarative-render2d')
-replaces=('qt5-declarative-render2d')
-_pkgfqn="${pkgname/5-/}-everywhere-src-${_qtver}"
-source=("http://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz")
-sha256sums=('9ecf5ef6bf618fcb6719a4b22e3d9f9ce7623c2344667038171d5662624c4f3a')
-
-prepare() {
-  mkdir -p build
-}
-
-build() {
-  cd build
-
-  qmake ../${_pkgfqn}
-  make
-}
-
-package() {
-  cd build
-  make INSTALL_ROOT="$pkgdir" install
-
-  # Symlinks for backwards compatibility
-  for b in "$pkgdir"/usr/bin/*; do
-    ln -s /usr/bin/$(basename $b) "$pkgdir"/usr/bin/$(basename $b)-qt5
-  done
-
-  # Drop QMAKE_PRL_BUILD_DIR because reference the build dir
-  find "$pkgdir/usr/lib" -type f -name '*.prl' \
-    -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
-
-  install -d "$pkgdir"/usr/share/licenses
-  ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
-}

Copied: qt5-declarative/repos/extra-x86_64/PKGBUILD (from rev 331722, qt5-declarative/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2018-08-17 14:27:31 UTC (rev 331724)
@@ -0,0 +1,53 @@
+# $Id: PKGBUILD 240297 2015-06-03 10:22:03Z fyan $
+# Maintainer: Felix Yan <felixonmars at archlinux.org>
+# Contributor: Andrea Scarpino <andrea at archlinux.org>
+
+pkgname=qt5-declarative
+_qtver=5.11.1
+pkgver=${_qtver/-/}
+pkgrel=2
+arch=('x86_64')
+url='http://qt-project.org/'
+license=('GPL3' 'LGPL3' 'FDL' 'custom')
+pkgdesc='Classes for QML and JavaScript languages'
+depends=('qt5-xmlpatterns')
+makedepends=('python')
+groups=('qt' 'qt5')
+conflicts=('qtchooser' 'qt5-declarative-render2d')
+replaces=('qt5-declarative-render2d')
+_pkgfqn="${pkgname/5-/}-everywhere-src-${_qtver}"
+source=("http://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz"
+        qtbug-68894.patch)
+sha256sums=('9ecf5ef6bf618fcb6719a4b22e3d9f9ce7623c2344667038171d5662624c4f3a'
+            'aae83820cb67c935e3e9160cea0015306d1a287d020c0f2656c98ecd8f239c6b')
+
+prepare() {
+  mkdir -p build
+
+  cd ${_pkgfqn}
+  patch -p1 -i ../qtbug-68894.patch # Fix crash when evaluating math.js
+}
+
+build() {
+  cd build
+
+  qmake ../${_pkgfqn}
+  make
+}
+
+package() {
+  cd build
+  make INSTALL_ROOT="$pkgdir" install
+
+  # Symlinks for backwards compatibility
+  for b in "$pkgdir"/usr/bin/*; do
+    ln -s /usr/bin/$(basename $b) "$pkgdir"/usr/bin/$(basename $b)-qt5
+  done
+
+  # Drop QMAKE_PRL_BUILD_DIR because reference the build dir
+  find "$pkgdir/usr/lib" -type f -name '*.prl' \
+    -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
+
+  install -d "$pkgdir"/usr/share/licenses
+  ln -s /usr/share/licenses/qt5-base "$pkgdir"/usr/share/licenses/${pkgname}
+}

Copied: qt5-declarative/repos/extra-x86_64/qtbug-68894.patch (from rev 331722, qt5-declarative/trunk/qtbug-68894.patch)
===================================================================
--- qtbug-68894.patch	                        (rev 0)
+++ qtbug-68894.patch	2018-08-17 14:27:31 UTC (rev 331724)
@@ -0,0 +1,101 @@
+From d1693c14b4e7f7d4a8ab4b2e876d9cf43a621e2e Mon Sep 17 00:00:00 2001
+From: Lars Knoll <lars.knoll at qt.io>
+Date: Tue, 19 Jun 2018 16:12:22 +0200
+Subject: revert change 353164263c55825a0ec72d30128c50560c626334
+
+The change was too aggressive in trying to avoid marking
+the array data. We didn't catch all cases where on could be
+inserting a GC controlled object into the array data. Let's
+be safe and always mark the content of array data objects.
+
+Task-number: QTBUG-68894
+Change-Id: Ifbb628be898c0903596b1a483212384295b01df5
+Reviewed-by: Erik Verbruggen <erik.verbruggen at qt.io>
+---
+ src/qml/jsruntime/qv4arraydata.cpp     | 4 ----
+ src/qml/jsruntime/qv4arraydata_p.h     | 4 +---
+ src/qml/jsruntime/qv4engine.cpp        | 6 ------
+ src/qml/jsruntime/qv4object.cpp        | 7 ++-----
+ tests/auto/qml/ecmascripttests/test262 | 2 +-
+ 5 files changed, 4 insertions(+), 19 deletions(-)
+
+diff --git a/src/qml/jsruntime/qv4arraydata.cpp b/src/qml/jsruntime/qv4arraydata.cpp
+index b33b34ee0..855407e6f 100644
+--- a/src/qml/jsruntime/qv4arraydata.cpp
++++ b/src/qml/jsruntime/qv4arraydata.cpp
+@@ -168,8 +168,6 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt
+     }
+     newData->setAlloc(alloc);
+     newData->setType(newType);
+-    if (d)
+-        newData->d()->needsMark = d->d()->needsMark;
+     newData->setAttrs(enforceAttributes ? reinterpret_cast<PropertyAttributes *>(newData->d()->values.values + alloc) : nullptr);
+     o->setArrayData(newData);
+ 
+@@ -192,8 +190,6 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt
+         memcpy(newData->d()->values.values, d->d()->values.values + offset, sizeof(Value)*toCopy);
+     }
+ 
+-    if (newType != Heap::ArrayData::Simple)
+-        newData->d()->needsMark = true;
+     if (newType != Heap::ArrayData::Sparse)
+         return;
+ 
+diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h
+index b2573b449..7ec060f9c 100644
+--- a/src/qml/jsruntime/qv4arraydata_p.h
++++ b/src/qml/jsruntime/qv4arraydata_p.h
+@@ -92,7 +92,7 @@ namespace Heap {
+ 
+ #define ArrayDataMembers(class, Member) \
+     Member(class, NoMark, ushort, type) \
+-    Member(class, NoMark, ushort, needsMark) \
++    Member(class, NoMark, ushort, unused) \
+     Member(class, NoMark, uint, offset) \
+     Member(class, NoMark, PropertyAttributes *, attrs) \
+     Member(class, NoMark, SparseArray *, sparse) \
+@@ -147,8 +147,6 @@ struct SimpleArrayData : public ArrayData {
+     uint mappedIndex(uint index) const { index += offset; if (index >= values.alloc) index -= values.alloc; return index; }
+     const Value &data(uint index) const { return values[mappedIndex(index)]; }
+     void setData(EngineBase *e, uint index, Value newVal) {
+-        if (newVal.isManaged())
+-            needsMark = true;
+         values.set(e, mappedIndex(index), newVal);
+     }
+ 
+diff --git a/src/qml/jsruntime/qv4engine.cpp b/src/qml/jsruntime/qv4engine.cpp
+index 835933c04..0ed0df89a 100644
+--- a/src/qml/jsruntime/qv4engine.cpp
++++ b/src/qml/jsruntime/qv4engine.cpp
+@@ -599,12 +599,6 @@ Heap::ArrayObject *ExecutionEngine::newArrayObject(const Value *values, int leng
+         // this doesn't require a write barrier, things will be ok, when the new array data gets inserted into
+         // the parent object
+         memcpy(&d->values.values, values, length*sizeof(Value));
+-        for (int i = 0; i < length; ++i) {
+-            if (values[i].isManaged()) {
+-                d->needsMark = true;
+-                break;
+-            }
+-        }
+         a->d()->arrayData.set(this, d);
+         a->setArrayLengthUnchecked(length);
+     }
+diff --git a/src/qml/jsruntime/qv4object.cpp b/src/qml/jsruntime/qv4object.cpp
+index bcbe475c2..0c6cde84a 100644
+--- a/src/qml/jsruntime/qv4object.cpp
++++ b/src/qml/jsruntime/qv4object.cpp
+@@ -231,11 +231,8 @@ void Heap::Object::markObjects(Heap::Base *b, MarkStack *stack)
+     Object *o = static_cast<Object *>(b);
+     if (o->memberData)
+         o->memberData->mark(stack);
+-    if (o->arrayData) {
+-        o->arrayData->setMarkBit();
+-        if (o->arrayData->needsMark)
+-            ArrayData::markObjects(o->arrayData, stack);
+-    }
++    if (o->arrayData)
++        o->arrayData->mark(stack);
+     uint nInline = o->vtable()->nInlineProperties;
+     Value *v = reinterpret_cast<Value *>(o) + o->vtable()->inlinePropertyOffset;
+     const Value *end = v + nInline;
+



More information about the arch-commits mailing list