Thread Tools Display Modes
07-14-24, 03:30 AM   #1
myrroddin
A Pyroguard Emberseer
 
myrroddin's Avatar
AddOn Author - Click to view addons
Join Date: Oct 2008
Posts: 1,253
Arithmetic on a nil value?

I understand that I have an error telling me that GetLeft and GetTop are nil values, thus the math isn't working. What I do not understand is why self.resFrame (module.resFrame) doesn't exist at that point.

If it helps, I am trying to create a header frame on the top of self.resFrame which contains the text "SmartRes2". It should have a background and border, and a silver texture.

Full code: https://pastebin.com/Gu3GrDF4

Error from BugSack:
Lua Code:
  1. 1x ...rfaceSmartRes2/Modules-Classic/Bars/Bars.lua:142: attempt to perform arithmetic on a nil value
  2. [string "@SmartRes2/Modules-Classic/Bars/Bars.lua"]:142: in function `GetResFramePosition'
  3. [string "@SmartRes2/Modules-Classic/Bars/BarsOptions.lua"]:21: in function `GetOptions'
  4. [string "@SmartRes2/Modules-Classic/Bars/Bars.lua"]:66: in function <...rfaceSmartRes2/Modules-Classic/Bars/Bars.lua:58>
  5. [string "=[C]"]: ?
  6. [string "@SmartRes2/Libs/AceAddon-3.0-13/AceAddon-3.0.lua"]:66: in function <SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:61>
  7. [string "@SmartRes2/Libs/AceAddon-3.0-13/AceAddon-3.0.lua"]:494: in function `InitializeAddon'
  8. [string "@SmartRes2/Libs/AceAddon-3.0-13/AceAddon-3.0.lua"]:619: in function <SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:611>
  9.  
  10. Locals:
  11. self = <table> {
  12. SetDefaultModuleLibraries = <function> defined @SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:363
  13. Enable = <function> defined @SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:290
  14. UnregisterAllEvents = <function> defined @BugSack/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:164
  15. EnableModule = <function> defined @SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:328
  16. modules = <table> {
  17. }
  18. GetModule = <function> defined @SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:206
  19. IterateEmbeds = <function> defined @SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:438
  20. UnregisterComm = <function> defined @BugSack/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:143
  21. defaultModuleLibraries = <table> {
  22. }
  23. Deserialize = <function> defined @BugSack/Libs/AceSerializer-3.0/AceSerializer-3.0.lua:246
  24. UnregisterChatCommand = <function> defined @SmartRes2/Libs/AceConsole-3.0/AceConsole-3.0.lua:107
  25. Printf = <function> defined @SmartRes2/Libs/AceConsole-3.0/AceConsole-3.0.lua:65
  26. SetDefaultModulePrototype = <function> defined @SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:405
  27. GetOptions = <function> defined @SmartRes2/Modules-Classic/Bars/BarsOptions.lua:16
  28. CreateResFrame = <function> defined @SmartRes2/Modules-Classic/Bars/Bars.lua:94
  29. name = "SmartRes2_Bars"
  30. IsEnabled = <function> defined @SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:447
  31. orderedModules = <table> {
  32. }
  33. resFrame = SmartRes2_ResFrame {
  34. }
  35. DisableModule = <function> defined @SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:346
  36. baseName = "SmartRes2"
  37. SendMessage = <function> defined @BugSack/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:49
  38. RefreshConfig = <function> defined @SmartRes2/Modules-Classic/Bars/Bars.lua:86
  39. GetResFramePosition = <function> defined @SmartRes2/Modules-Classic/Bars/Bars.lua:139
  40. RegisterMessage = <function> defined @BugSack/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:80
  41. UnregisterMessage = <function> defined @BugSack/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:143
  42. Print = <function> defined @SmartRes2/Libs/AceConsole-3.0/AceConsole-3.0.lua:50
  43. OnDisable = <function> defined @SmartRes2/Modules-Classic/Bars/Bars.lua:78
  44. OnEnable = <function> defined @SmartRes2/Modules-Classic/Bars/Bars.lua:72
  45. OnInitialize = <function> defined @SmartRes2/Modules-Classic/Bars/Bars.lua:58
  46. lsm = <table> {
  47. }
  48. IsModule = <function> defined @SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:213
  49. db = <table> {
  50. }
  51. SetDefaultModuleState = <function> defined @SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:383
  52. SendCommMessage = <function> defined @BugSack/Libs/AceComm-3.0/AceComm-3.0.lua:83
  53. UnregisterAllComm = <function> defined @BugSack/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:164
  54. SetEnabledState = <function> defined @SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:420
  55. Serialize = <function> defined @BugSack/Libs/AceSerializer-3.0/AceSerializer-3.0.lua:122
  56. enabledState = true
  57. GetArgs = <function> defined @SmartRes2/Libs/AceConsole-3.0/AceConsole-3.0.lua:140
  58. RegisterEvent = <function> defined @BugSack/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:80
  59. UnregisterAllMessages = <function> defined @BugSack/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua:164
  60. RegisterComm = <function> defined @BugSack/Libs/AceComm-3.0/AceComm-3.0.lua:56
  61. RegisterChatCommand = <function> defined @SmartRes2/Libs/AceConsole-3.0/AceConsole-3.0.lua:81
  62. defaultModuleState = true
  63. IterateModules = <function> defined @SmartRes2/Libs/AceAddon-3.0/AceAddon-3.0.lua:433
  64. Ne

Last edited by myrroddin : 07-14-24 at 03:32 AM. Reason: spelling error
  Reply With Quote
07-14-24, 05:31 AM   #2
Dridzt
A Pyroguard Emberseer
 
Dridzt's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2005
Posts: 1,366
1. Where (and more importantly when) do you SetPoint the resFrame?
2. After 15years how are you still getting people to write your addons for you?
  Reply With Quote
07-14-24, 02:45 PM   #3
myrroddin
A Pyroguard Emberseer
 
myrroddin's Avatar
AddOn Author - Click to view addons
Join Date: Oct 2008
Posts: 1,253
Ah, thank you for the hint. I don't use SetPoint on f, but I do on self.resFrame via line 69. I'm guessing lines 121 and 131 aren't firing unless I SetPoint on f?
  Reply With Quote
07-14-24, 02:59 PM   #4
Fizzlemizz
I did that?
 
Fizzlemizz's Avatar
Premium Member
AddOn Author - Click to view addons
Join Date: Dec 2011
Posts: 1,974
See the comment under Returns

GetResFramePosition calls GetLeft on self.resFrame before it does a SetPoint on self.resFrame
__________________
Fizzlemizz
Maintainer of Discord Unit Frames and Discord Art.
Author of FauxMazzle, FauxMazzleHUD and Move Pad Plus.

Last edited by Fizzlemizz : 07-14-24 at 03:02 PM.
  Reply With Quote
07-14-24, 03:25 PM   #5
myrroddin
A Pyroguard Emberseer
 
myrroddin's Avatar
AddOn Author - Click to view addons
Join Date: Oct 2008
Posts: 1,253
Originally Posted by Fizzlemizz View Post
See the comment under Returns

GetResFramePosition calls GetLeft on self.resFrame before it does a SetPoint on self.resFrame
D'oh! I missed the comment.
Returns

Returns nil if the region has no points.
I added the below as line 110; that should fix the nil error. Now to load and test.
Code:
f:SetPoint(db.point, UIParent, db.point, db.x / db.scale, db.y / db.scale)
Thank you, good people.
  Reply With Quote

WoWInterface » Developer Discussions » Lua/XML Help » Arithmetic on a nil value?


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off