On Mon, May 19, 2014 at 9:55 AM, Robert Chatman <[email protected]> wrote: > I am in the process of finishing up implementing a plugin for UE4 that > leverages V8 for scripting. As such, I've been moving slowly towards making > the API simple enough that people don't have to get into the guts of V8 too > deeply. I have to say that the implementation I'm working with (I am > currently running 3.26.0) has been quite frustrating =\ > > My current issue revolves around exposing a static method. I have simplified > the sample down to something that illustrates the issue and hides the rest > of the implementation. > > Example with failure on line 26: > http://pastebin.com/UNHifKPy > > Usage of Expose: > http://pastebin.com/QxRvTZZH > > Signatures & Definition of methods: > http://pastebin.com/8iwRLhcu > > Whenever line 26 is executed an Access Violation is triggered: > Unhandled exception at 0x00007FFA753CB17F > (UE4Editor-FH_Flying-Win64-DebugGame.dll) in UE4Editor.exe: 0xC0000005: > Access violation reading location 0x0000000000000020. > > If I comment out the line with the function delegate assignment the code > runs fine.In the following example, loaded in viat BobTest.js, I am able to > confirm that Bob is created, that it has creationTime and setActorPosition > defined, and that the callback/accessors are executed, and that value and > value2 (set to be the address of the method that failed earlier) are defined > and correct. > > game.log(Bob); > game.log(Bob.creationTime); > game.log(Bob.setActorPosition(10, 10, 10)); > game.log(Bob.value); > game.log(Bob.value2); > > [2014.05.19-07.24.29:404][ 14]FH: [object Object] > [2014.05.19-07.24.29:405][ 14]FH: 0 > [2014.05.19-07.24.29:406][ 14]FH: true > [2014.05.19-07.24.29:406][ 14]FH: 42 > [2014.05.19-07.24.29:407][ 14]FH: 140713690731404 > > I've spent a few days trying to sort this one out, and I am needing some > assistance in sorting this one out. I hope to get this sorted out ASAP so I > can get the plugin out. > > I thank you all for any assistance you provide. Please let me know if there > is anything else you need to help me out. > > .:Bob
It's not immediately clear to me what's wrong but I suspect that FunctionTemplate::New() returns an empty handle for some reason, i.e. that ft.IsEmpty() == true. I'd recommend trying it with a debug build of V8, it has many more checks enabled. I don't know how you build V8 but you probably want to set v8_enable_extra_checks=1 as well (extrachecks=on if you use the Makefile.) -- -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
