GlyphUI unconditionally using code not loaded

Bug Report
WTB five more letters in the Subject field, it would have made more sense. Anyhow.

Here's the error text for google fodder, the explanation and fix are below.
82x Blizzard_GlyphUI\Blizzard_GlyphUI-1.0.lua:174: attempt to index global "PlayerTalentFrame" (a nil value)
Blizzard_GlyphUI\Blizzard_GlyphUI-1.0.lua:174: in function "GlyphFrame_Update"
Blizzard_GlyphUI\Blizzard_GlyphUI-1.0.lua:91: in function <Blizzard_GlyphUI\Blizzard_GlyphUI.lua:80>

This happens with no addons at all, and the cause of the bug is easy to see:

The GlyphFrame_Update() routine unconditionally references "PlayerTalentFrame" on line 174, trying to get the icon for the current specialization. But that frame is only created as part of the load-on-demand TalentUI module, which isn't always there. In particular, joining a random LFD group without ever having opened your glyph or talent windows will trigger the bug.

Elsewhere in Blizzard_GlyphUI.lua, and in other parts of the default UI, the code is more robust: either TalentFrame_LoadUI() is called (which is a safe no-op if it's loaded already), or an assignment like "foo = PlayerTalentFrame and PlayerTalentFrame.talentGroup or 1" is done.

The proper fix on Blizzard's end is obvious. What can players do in the meantime? "Always hit 'N' before queuing for anything" is crude but effective. Coding to notice when GlyphUI is loaded and immediately calling TalentFrame_LoadUI() works too.
Got the same message, though with addons on (when learning a glyph).


Date: 2012-09-02 23:32:09
ID: 2
Error occured in: Global
Count: 1
Message: ...terface\AddOns\Blizzard_GlyphUI\Blizzard_GlyphUI.lua line 174:
attempt to index global 'PlayerTalentFrame' (a nil value)
(tail call): ?
[string "*:OnLoad"]:6:
[string "*:OnLoad"]:1
[C]: ?
...terface\AddOns\Blizzard_GlyphUI\Blizzard_GlyphUI.lua:174: GlyphFrame_Update()
msg = nil
self = <unnamed> {
0 = <userdata>
origErrorHandler = <function> defined @Interface\AddOns\Decursive\Dcr_DIAG.lua:253
errorHandler = <function> defined @Interface\AddOns\TradeSkillMaster\Util\ErrorHandler.lua:213
handler = <function> defined *:OnLoad:1

Swatter, v5.14.5335 (KowariOnCrutches)
WowheadLooter, v50005
Corpse, v5.0.0.1
NPCScan, v5.0.0.1
NPCScanOverlay, v5.0.0.1
Ace3, v
ACP, v3.4
Altoholic, v4.3.003
AtlasLoot, vv7.00.00
AtlasLootCataclysm, vv7.00.01
AtlasLootClassicWoW, vv7.00.01
AtlasLootLoader, vv7.00.01
AucAdvanced, v5.14.5335 (KowariOnCrutches)
AucFilterBasic, v5.14.5335 (KowariOnCrutches)
AucFilterOutlier, v5.14.5335.5335(5.14/embedded)
AucMatchUndercut, v5.14.5335.5225(5.14/embedded)
AucScanData, v5.14.5335 (KowariOnCrutches)
AucStatHistogram, v5.14.5335 (KowariOnCrutches)
AucStatiLevel, v5.14.5335 (KowariOnCrutches)
AucStatPurchased, v5.14.5335 (KowariOnCrutches)
AucStatSales, v5.14.5335.5335(5.14/embedded)
AucStatSimple, v5.14.5335 (KowariOnCrutches)
AucStatStdDev, v5.14.5335 (KowariOnCrutches)
AucStatWOWEcon, v5.14.5335.5335(5.14/embedded)
AucUtilAHWindowControl, v5.14.5335.5133(5.14/embedded)
AucUtilAppraiser, v5.14.5335.5335(5.14/embedded)
AucUtilAskPrice, v5.14.5335.5160(5.14/embedded)
AucUtilAutoMagic, v5.14.5335.5335(5.14/embedded)
AucUtilCompactUI, v5.14.5335.5335(5.14/embedded)
AucUtilEasyBuyout, v5.14.5335.5238(5.14/embedded)
AucUtilFixAH, v5.14.5335 (KowariOnCrutches)
AucUtilItemSuggest, v5.14.5335.5335(5.14/embedded)
AucUtilPriceLevel, v5.14.5335.5237(5.14/embedded)
AucUtilScanButton, v5.14.5335.5335(5.14/embedded)
AucUtilScanFinish, v5.14.5335.5153(5.14/embedded)
AucUtilScanProgress, v5.14.5335.4979(5.14/embedded)
AucUtilScanStart, v5.14.5335.5153(5.14/embedded)
AucUtilSearchUI, v5.14.5335.5335(5.14/embedded)
AucUtilSimpleAuction, v5.14.5335.5208(5.14/embedded)
AucUtilVendMarkup, v5.14.5335.4828(5.14/embedded)
Auctionator, v3.0.2
Babylonian, v5.1.DEV.312(/embedded)
BeanCounter, v5.14.5335 (KowariOnCrutches)
Configator, v5.1.DEV.330(/embedded)
DataStore, v5.0.001
DataStoreAchievements, v5.0.001
DataStoreAgenda, v5.0.001
DataStoreAuctions, v5.0.001
DataStoreCharacters, v5.0.001
DataStoreContainers, v5.0.001
DataStoreCrafts, v5.0.001
DataStoreCurrencies, v5.0.001
DataStoreInventory, v5.0.001
DataStoreMails, v5.0.001
DataStorePets, v5.0.001
DataStoreQuests, v5.0.001
DataStoreReputations, v5.0.001
DataStoreSpells, v5.0.001
DataStoreStats, v5.0.001
DataStoreTalents, v5.0.001
DBMCore, v
DBMSpellTimers, v
DebugLib, v5.1.DEV.312(/embedded)
Decursive, v2.7.1.1
Enchantrix, v5.14.5335 (KowariOnCrutches)
EnchantrixBarker, v5.14.5335 (KowariOnCrutches)
Gatherer, v4.0.1
GTFO, v4.14
Informant, v5.14.5335 (KowariOnCrutches)
LibExtraTip, v5.12.DEV.324(/embedded)
MikScrollingBattleText, v5.7.119
Minimalist, v
Pawn, v1.6.2
RangeDisplay, vv4.0.0
RatingBuster, v5.0.4.356
ReforgedTooltip, v1.0.7
Skada, v1.4-3
SkadaDamage, v1.0
SkadaDeaths, v1.0
SkadaDebuffs, v1.0
SkadaDispels, v1.0
SkadaEnemies, v1.0
SkadaHealing, v1.0
SkadaThreat, v1.0
Stubby, v5.14.5335 (KowariOnCrutches)
TipHelper, v5.12.DEV.315(/embedded)
Titan, v5.1.1.50001 - Revision 519
TitanBag, v5.1.1.50001
TitanClock, v5.1.1.50001
TitanGold, v5.1.1.50001
TitanHonorPoints, v4.0.001
TitanJusticePoints, v4.0.001
TitanLootType, v5.1.1.50001
TitanMC, v4.0.001
TitanPerformance, v5.1.1.50001
TitanRepair, v5.1.1.50001
TitanSpec, v2.0.1
TitanValorPoints, v4.0.001
TitanVolume, v5.1.1.50001
TradeSkillMaster, vv1.4.5
TradeSkillMasterMailing, vv1.0.6
WoWDBProfiler, v
WowPro, v2.3.0B
WoWProLeveling, v2.3.0B
WowProProfession, v2.3.0B
WoWProWorldEvents, v2.3.0B
BlizRuntimeLib_enUS v5.0.4.50001 <us>
For anyone that cares BlizzBugsSuck now includes the fix for this.

Join the Conversation

Return to Forum