Clique

96 - Curly braces in macro causes strange errors

                {
                    ["macrotext"] = "/cast {@focus] Spear Hand Strike",
                    ["type"] = "macro",
                    ["key"] = "NUMPAD6",
                    ["sets"] = {
                        ["global"] = true,
                    },
                }, -- [8]

Notice the curly brace (doesn't even show as curly with my font & resolution - DOH!) in the macro. This causes errors like:

104x FrameXML\RestrictedExecution.lua:397 Call failed: FrameXML\RestrictedExecution.lua:124 Direct table creation is not permitted
<in C code>
FrameXML\RestrictedExecution.lua:397 in function <FrameXML\RestrictedExecution.lua:390
(tail call): ?
(tail call): ?
FrameXML\SecureHandlers.lua:490 in function <FrameXML\SecureHandlers.lua:468
<in C code>
FrameXML\SecureHandlers.lua:673 in function <FrameXML\SecureHandlers.lua:659
(tail call): ?
Clique\Clique-v50200-1.0.3.lua:773 in function "ApplyAttributes"
Clique\Clique-v50200-1.0.3.lua:981 in function "?"
Clique-v50200-1.0.3\AddonCore.lua:122 in function "FireMessage"
Clique\Clique-v50200-1.0.3.lua:681 in function "AddBinding"
Clique-v50200-1.0.3\BindConfig.lua:289 in function "Button_OnClick"
<string>:"*:OnClick":1: in function <string>:"*:OnClick":1

Locals:
workingEnv = <userdata>
ctrlHandle = <userdata>
pcallFlag = false
LOCAL_Function_Environment_Manager = <func> @FrameXML\RestrictedExecution.lua:209
error = <func> =[C]:-1
tostring = <func> =[C]:-1

All my "global" bindings stopped working when this macro was active. "default" ones kept working.

I have to wonder what the heck causes this to happen in Blizzard's code - would be interesting to poke around but busy playing now :)

User When Change
mikk Mar 19, 2013 at 16:11 UTC Create

You must login to post a comment. Don't have an account? Register to get one!

  • 3 comments
  • Avatar of Cladhaire Cladhaire Mar 20, 2013 at 04:23 UTC - 0 likes

    It is hardcoded in the restricted environment. No secure snippet can have the '{' or '}' characters anywhere in it.

  • Avatar of mikk mikk Mar 19, 2013 at 22:10 UTC - 0 likes

    Yeah but why is it even parsing a { in a macro as a table? That's what baffles me :)

  • Avatar of Cladhaire Cladhaire Mar 19, 2013 at 17:24 UTC - 0 likes

    This is as expected. You can't create tables in secure scripts, and that's what I use to set up the bindings. Its a pretty simple restriction, and I should probably give a Clique error when you try to create a macro like this.

  • 3 comments

Facts

Reported
Mar 19, 2013
Status
New - Issue has not had initial review yet.
Type
Defect - A shortcoming, fault, or imperfection
Priority
Medium - Normal priority.
Votes
0

Reported by

Possible assignees