From 0b3ec943b009aaea62ac214a1bb0ac8444871ba7 Mon Sep 17 00:00:00 2001 From: Parnic Date: Sat, 18 Sep 2010 04:04:30 +0000 Subject: [PATCH] - fixed the mirror bar: changed function declaration "class.new" to "class:new" in IceCore_CreateClass so that "self" doesn't get included in ... when init is called. this was causing an off-by-one error in the order of parameters passed to mirrorbar's "init" method and surprisingly didn't break anything else (looks like judicious use of 'ifs' in some defensive coding saved the rest of the modules); thanks to mitch0 for the report - added an argument to IceElement's init function that allows modules to skip the registration with the core. mirrorbars need this since they are created on demand and not saved with the rest of the bars --- IceBarElement.lua | 4 ++-- IceCore.lua | 2 +- IceElement.lua | 6 ++++-- modules/MirrorBar.lua | 6 +----- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/IceBarElement.lua b/IceBarElement.lua index 52387ce..3f31bcb 100644 --- a/IceBarElement.lua +++ b/IceBarElement.lua @@ -19,8 +19,8 @@ local lastMarkerHeightConfig = 6 local lastEditMarkerConfig = 1 -- Constructor -- -function IceBarElement.prototype:init(name) - IceBarElement.super.prototype.init(self, name) +function IceBarElement.prototype:init(name, ...) + IceBarElement.super.prototype.init(self, name, ...) end diff --git a/IceCore.lua b/IceCore.lua index ae35211..bc563c3 100644 --- a/IceCore.lua +++ b/IceCore.lua @@ -5,7 +5,7 @@ function IceCore_CreateClass(parent) setmetatable(class.prototype, { __index = parent.prototype }) end local mt = { __index = class.prototype } - function class.new(...) + function class:new(...) local self = setmetatable({}, mt) if self.init then self:init(...) diff --git a/IceElement.lua b/IceElement.lua index db4df94..03e3217 100644 --- a/IceElement.lua +++ b/IceElement.lua @@ -28,7 +28,7 @@ IceElement.prototype.bIsVisible = true -- IceElements are to be instantiated before IceCore is loaded. -- Therefore we can wait for IceCore to load and then register our -- module to the core with another event. -function IceElement.prototype:init(name) +function IceElement.prototype:init(name, skipRegister) assert(name, "IceElement must have a name") self.elementName = name @@ -42,7 +42,9 @@ function IceElement.prototype:init(name) LibStub("AceEvent-3.0"):Embed(self) LibStub("AceTimer-3.0"):Embed(self) - IceHUD:Register(self) + if not skipRegister then + IceHUD:Register(self) + end end diff --git a/modules/MirrorBar.lua b/modules/MirrorBar.lua index efe5142..f5287ab 100644 --- a/modules/MirrorBar.lua +++ b/modules/MirrorBar.lua @@ -18,7 +18,7 @@ MirrorBar.prototype.label = nil -- Constructor -- function MirrorBar.prototype:init(side, offset, name, db) - MirrorBar.super.prototype.init(self, name) + MirrorBar.super.prototype.init(self, name, true) self.settings = db self.moduleSettings = {} self.moduleSettings.side = side @@ -29,10 +29,6 @@ function MirrorBar.prototype:init(side, offset, name, db) self.moduleSettings.barVerticalOffset = 0 -- avoid nil warnings here self.moduleSettings.myTagVersion = IceHUD.CurrTagVersion - - -- unregister the event superclass registered, we don't want to register - -- this to the core - self:UnregisterEvent(IceCore.Loaded) end