Skip to content

fix: target link error in qt6.6#9

Merged
18202781743 merged 1 commit intolinuxdeepin:masterfrom
18202781743:fix-export-symbol
Nov 1, 2023
Merged

fix: target link error in qt6.6#9
18202781743 merged 1 commit intolinuxdeepin:masterfrom
18202781743:fix-export-symbol

Conversation

@18202781743
Copy link
Contributor

symbol can't export in qt6.6.

  symbol can't export in qt6.6.
@18202781743 18202781743 requested review from a team, BLumia and tsic404 November 1, 2023 02:20
@deepin-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: 18202781743, BLumia, wineee

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@18202781743 18202781743 merged commit 39f5eaf into linuxdeepin:master Nov 1, 2023
deepin-bot bot pushed a commit that referenced this pull request Mar 4, 2026
Removed the connection to the source model's destroyed signal that was
causing a crash during abnormal exit. The handler was attempting to
reset the model while it was already being updated, leading to invalid
state access and crashes. This connection was unnecessary as the source
model cleanup is already handled by Qt's parent-child relationship.

```
#0  0x00007f72b49dabe6 in QAbstractProxyModel::canFetchMore (this=0x55c861a82510, parent=...) at ./src/corelib/itemmodels/qabstractproxymodel.cpp:413
#1  0x00007f72b3cb4de6 in ??? () at /lib/x86_64-linux-gnu/libQt6QmlModels.so.6
#2  0x00007f72b3cc74c0 in QQmlDelegateModel::handleModelReset() () at /lib/x86_64-linux-gnu/libQt6QmlModels.so.6
#3  0x00007f72b486246c in QtPrivate::QSlotObjectBase::call (a=0x7ffeda7ec110, r=0x55c862f7a070, this=0x55c862f80fe0, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at ./src/corelib/kernel/qobjectdefs_impl.h:486
#4  doActivate<false> (sender=0x55c861a82510, signal_index=21, argv=0x7ffeda7ec110) at ./src/corelib/kernel/qobject.cpp:4120
#5  0x00007f72b49cb2e1 in QAbstractItemModel::modelReset (this=<optimized out>, _t1=...) at ./obj-x86_64-linux-gnu/src/corelib/Core_autogen/include/moc_qabstractitemmodel.cpp:1113
#6  0x00007f729fdb0be3 in operator() (__closure=0x55c861b48b40) at /home/work/dde-shell/panels/dock/taskmanager/dockitemmodel.cpp:89
#7  0x00007f729fdb284b in operator() (__closure=0x7ffeda7ec1b0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:141
#8  0x00007f729fdb2944 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, dock::DockItemModel::setSourceModel(QAbstractItemModel*)::<lambda()> >::call(dock::DockItemModel::setSourceModel(QAbstractItemModel*)::<lambda()>&, void**)::<lambda()> >(void **, struct {...} &&) (args=0x7ffeda7ec340, fn=...)
    at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:65
#9  0x00007f729fdb2881 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, dock::DockItemModel::setSourceModel(QAbstractItemModel*)::<lambda()> >::call(struct {...} &, void **)
    (f=..., arg=0x7ffeda7ec340) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:140
#10 0x00007f729fdb2633 in QtPrivate::FunctorCallable<dock::DockItemModel::setSourceModel(QAbstractItemModel*)::<lambda()> >::call<QtPrivate::List<>, void>(struct {...} &, void *, void **)
    (f=..., arg=0x7ffeda7ec340) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:362
#11 0x00007f729fdb250a in QtPrivate::QCallableObject<dock::DockItemModel::setSourceModel(QAbstractItemModel*)::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x55c861b48b30, r=0x55c861a82510, a=0x7ffeda7ec340, ret=0x0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:572
#12 0x00007f72b486246c in QtPrivate::QSlotObjectBase::call (a=0x7ffeda7ec340, r=0x55c861a82510, this=0x55c861b48b30, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at ./src/corelib/kernel/qobjectdefs_impl.h:486
#13 doActivate<false> (sender=0x55c861afbfc0, signal_index=0, argv=0x7ffeda7ec340) at ./src/corelib/kernel/qobject.cpp:4120
#14 0x00007f72b48629c3 in QObject::destroyed (this=<optimized out>, _t1=<optimized out>) at ./obj-x86_64-linux-gnu/src/corelib/kernel/moc_qobject.cpp:229
```

Influence:
1. Test application exit scenarios to ensure no crashes occur
2. Verify dock item model updates correctly during normal operation
3. Test with multiple source model changes and updates
4. Verify model reset functionality still works properly when needed

fix: 移除源模型销毁处理程序以防止崩溃

移除了导致异常退出时崩溃的源模型销毁信号连接。该处理程序在模型已处于更新
状态时尝试重置模型,导致无效状态访问和崩溃。此连接是不必要的,因为源模型
的清理已由Qt的父子关系处理。

Influence:
1. 测试应用程序退出场景,确保不会发生崩溃
2. 验证在正常操作期间dock项目模型是否正确更新
3. 测试多个源模型更改和更新
4. 验证模型重置功能在需要时仍能正常工作
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants