Skip to content

chore: update version to 6.0.42#295

Merged
lzwind merged 1 commit into
linuxdeepin:masterfrom
wyu71:master
May 19, 2026
Merged

chore: update version to 6.0.42#295
lzwind merged 1 commit into
linuxdeepin:masterfrom
wyu71:master

Conversation

@wyu71
Copy link
Copy Markdown
Contributor

@wyu71 wyu71 commented May 19, 2026

  • bump version to 6.0.42

Log : bump version to 6.0.42

- bump version to 6.0.42

Log : bump version to 6.0.42
@github-actions
Copy link
Copy Markdown

TAG Bot

TAG: 6.0.42
EXISTED: no
DISTRIBUTION: unstable

@deepin-ci-robot
Copy link
Copy Markdown

deepin pr auto review

你好!我是CodeGeeX。我已仔细审查了你提供的Git Diff内容。

本次提交主要包含了版本号的升级(从 6.0.41 升至 6.0.42)以及对应的 Debian Changelog 更新。Changelog 中记录了几个重要的修复,涉及异步回调安全、多页 TIF 文件翻页按钮显示逻辑,以及多页 TIFF 切换时的白屏问题。

由于本次 Diff 仅包含版本号和变更日志的修改,不涉及实际的 C++/QML 业务代码,我将从配置规范、版本管理、以及基于 Changelog 推断的代码逻辑几个维度为你提供审查意见和改进建议:

1. 语法与规范

  • Debian Changelog 格式
    • 优点:格式非常标准,包含了包名、版本号、发行版(unstable)、优先级、变更描述以及维护者信息。时间戳格式也符合 Debian 标准(包含星期和时区 +0800)。
    • 注意点:时间戳为 Tue, 19 May 2026 19:09:48 +0800,日期是 2026年。虽然这可能是你为了测试或特定需求修改了系统时间,但在正式发版时,请确保使用真实的当前时间(可通过 dch -idebchange 命令自动生成正确时间),以免导致包管理系统出现时间线混乱。

2. 代码逻辑与质量 (基于 Changelog 推断)

Changelog 中提到了三个关键 Fix,虽然没看到具体代码,但基于这些修复,我提供以下逻辑审查建议:

  • fix: add defensive checks in checkSwitchEnable for async callback safety
    • 逻辑审查:异步回调安全是图像查看器中非常常见的问题(如用户快速点击时,旧回调未执行完,新回调又触发,或者回调触发时相关对象已被销毁)。
    • 改进建议:请确保在异步回调中不仅检查了指针是否为空(nullptr),还建议使用 Qt 的 QPointer 来守护对象生命周期,或者在连接信号槽时使用 QueuedConnection 并在回调入口校验发送者/接收者的有效性,防止野指针或 Use-After-Free 漏洞。
  • fix: show prev/next buttons for single multi-page TIF file
    • 逻辑审查:之前的逻辑可能是“当文件夹中只有一张图片时隐藏翻页按钮”,但这忽略了单张多页 TIF 文件内部也需要翻页的需求。
    • 改进建议:检查判断翻页按钮显隐的逻辑是否足够健壮。正确的逻辑应该是:总页数 = 文件夹内图片数 + 多页文件的额外帧数总和。只要 总页数 > 1,就应该显示翻页按钮。请确保同时测试了“多张单页图”、“单张多页图”和“多张多页图混合”的场景。
  • fix(multi-image): fix blank page when switching multi-page TIFF frames
    • 逻辑审查:切换多页 TIFF 出现白屏,通常是因为图片解码在主线程进行导致 UI 阻塞,或者是帧切换时渲染管线未及时更新(如旧帧资源被提前释放)。
    • 改进建议:如果是解码耗时导致的白屏,建议增加异步加载和占位图机制;如果是渲染管线问题,请确保在切换帧时,新帧的纹理已经 Upload 到 GPU 后再释放旧帧的资源。

3. 代码性能

  • 多页 TIFF 解码性能
    • 多页 TIFF(特别是无损压缩或高分辨率)在切换帧时极其消耗 CPU 和内存。建议在代码中实现预加载机制:当用户查看第 N 帧时,后台线程提前解码第 N+1 帧和第 N-1 帧,这样在用户点击“下一帧”时可以瞬间显示,彻底消除白屏和卡顿感。
  • 内存管理
    • 深度图像查看器在处理多页 TIFF 时,容易发生内存飙升。建议在代码中限制同时缓存在内存中的帧数(例如采用 LRU 缓存策略),超出限制的帧应及时释放内存,避免在 32 位系统或低配设备上发生 OOM (Out of Memory)。

4. 代码安全

  • 图像解码安全
    • TIFF 格式由于其结构复杂,历史上一直是图像解析漏洞的重灾区(如缓冲区溢出、越界读写等)。虽然此 Diff 未涉及解码库的更新,但作为图像查看器,强烈建议:
      1. 确保底层使用的图像解码库(如 libtiff, FreeImage, 或 Qt 自带的图片插件)是最新版本,已修补已知 CVE。
      2. 在进行异步解码时,最好加入超时机制或沙箱隔离,防止恶意构造的畸形 TIFF 文件导致解码线程死循环或崩溃(DoS 攻击)。
  • 版本号一致性
    • debian/changelog 中的版本是 6.0.42,而 linglong.yaml 中的版本是 6.0.42.1。虽然 Linglong 的版本规范可能与 Debian 不同(多了 .1 后缀),但请确认这是否符合你们项目的发版规范,避免因版本号不一致导致自动化流水线或包管理器出现依赖冲突。

总结

本次 Diff 本身没有代码层面的风险,主要是版本升级。但结合 Changelog 修复的问题,建议在后续的代码提交中,重点关注多页图像的生命周期管理异步回调的线程安全以及大图解码的内存控制。在合入主分支前,建议针对各种边界情况(如单张多页、混合多页、快速连续点击等)进行充分的 UI 自动化测试。

@deepin-ci-robot
Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: lzwind, wyu71

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

@lzwind lzwind merged commit e883633 into linuxdeepin:master May 19, 2026
20 of 22 checks passed
@deepin-bot
Copy link
Copy Markdown
Contributor

deepin-bot Bot commented May 19, 2026

TAG Bot

Tag created successfully

📋 Tag Details
  • Tag Name: 6.0.42
  • Tag SHA: 9f3ec7efc2167823b28260258b653d5a62f48a3f
  • Commit SHA: f7112b062682d39011c8735f90c428dbe52c1589
  • Tag Message:
    Release deepin-image-viewer 6.0.42
    
    
  • Tagger:
    • Name: wyu71
  • Distribution: unstable

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.

3 participants