Skip to content

brotherjia/tsm-auctiondb-memory-fix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

TSM 2 AuctionDB 扫描内存错误修复

这是一个针对 World of Warcraft 3.3.5TradeSkillMaster 2.8.3TradeSkillMaster_AuctionDB 2.3.10 的兼容性补丁。

它用于规避拍卖行扫描接近结束时出现的错误:

Interface\AddOns\TradeSkillMaster\Core\Threading.lua:28:
memory allocation error: block too big

问题原因

AuctionDB 会按照拍卖堆叠数量逐个创建价格样本。原代码虽然打算把每种物品限制在 5000 个样本以内,但检查发生在处理整条拍卖记录之前;单条异常大的堆叠仍可能一次插入远超 5000 个元素。

某些 3.3.5 私服允许远大于原版预期的堆叠数量。完整扫描或 GetAll 扫描处理这些拍卖时,Lua 可能尝试申请过大的内存块并报错。

本补丁在以下三条数据路径中真正执行每种物品最多 5000 个价格样本的限制:

  • GetAll 扫描
  • 普通/分组扫描
  • 外部导入的拍卖数据

拍卖总数量 quantity 仍按完整数量保存;只有用于市场价计算的价格样本数量受到原设计的 5000 条上限约束。

适用版本

已实际验证:

  • WoW 客户端:3.3.5
  • TradeSkillMaster:2.8.3
  • TradeSkillMaster_AuctionDB:2.3.10
  • 中文客户端:zhCN

其他版本的文件结构或函数实现可能不同,不建议直接覆盖。

下载

  1. 在 GitHub 项目页面点击 Code
  2. 选择 Download ZIP
  3. 解压下载的 ZIP,找到其中的 Scanning.lua

也可以只下载仓库根目录中的 Scanning.lua 文件。

安装方法

  1. 完全退出游戏,确认任务管理器中没有 Wow.exe
  2. 打开 WoW 游戏目录。
  3. 进入:
Interface\AddOns\TradeSkillMaster_AuctionDB\Modules\
  1. 将原文件备份为:
Scanning.lua.original
  1. 把本项目中的 Scanning.lua 复制到该目录,覆盖原文件。
  2. 启动游戏,打开拍卖行并重新进行扫描。

完整目标路径应类似:

<魔兽世界目录>\Interface\AddOns\TradeSkillMaster_AuctionDB\Modules\Scanning.lua

本补丁不会修改或删除 WTF 目录中的 SavedVariables,因此不会主动清空 AuctionDB 历史价格、TSM 分组、操作或价格公式。

回滚方法

  1. 完全退出游戏。
  2. 删除补丁版 Scanning.lua
  3. 将备份的 Scanning.lua.original 改回 Scanning.lua

也可以重新安装原版 TradeSkillMaster_AuctionDB 2.3.10。重新安装或更新插件后,本补丁可能会被覆盖。

验证结果

该补丁已在此前稳定复现扫描末尾 memory allocation error: block too big 的环境中连续观察数天,拍卖行扫描能够正常完成,错误未再次出现。

注意事项

  • 不要通过删除或注释 TradeSkillMaster\Core\Threading.lua 第 28 行来隐藏错误;该位置只负责重新抛出后台任务中的实际异常。
  • 建议修改前备份原始文件。
  • 如果使用不同版本的 TSM/AuctionDB,请先比较源码,不要直接覆盖。
  • 插件更新后请检查补丁是否仍然需要,并重新验证兼容性。

版权说明

Scanning.lua 基于 TradeSkillMaster_AuctionDB 2.3.10 的原始文件修改,原项目版权声明保留。此仓库未对原项目代码重新授权,也未声明与 TradeSkillMaster 官方存在关联。

About

WoW 3.3.5 TSM 2 AuctionDB 扫描内存错误修复

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages