Hi Ovidiu,

This error could occur when boost is trying to call a callback on a object that does not exist anymore. Try to make the class which register to events inherits Trackable (from libs/util). It could fix this issue.



Le 9 oct. 06 à 22:58, Ovidiu Ciule a écrit :

Hello,

I'm working on the scripting-engine branch of WP, and I keep
encountering a crash. Well, none of you have any experience with this
branch, as I'm its developer, but someone may have an idea about the
crash. My gut feeling is that it's related to boost events or, maybe,
threads (thus, my other post). However, mutexes did not help, as WP
crashes well before them. I hope someone more experienced than me has
seen this before, and can help. Without you, the future of WP's
Scripting Engine is in peril!!

Here's the dump, commented by me. There's a comment BEFORE each
callback. As usual, the callbacks are in reverse order.

//here we are inside a boost lib, this being the last callback, I
guess this is where WP crashes
qtwengophone.exe!boost::signals::detail::call_notification::call_notification()
+ 0x1c bytes

// here we are inside boost, and this is where trouble starts...
qtwengophone.exe!boost::signal1<void,std::basic_string<char,std::char_traits<char>,std::allocator<char>
,boost::last_value<void>,int,std::less<int>,boost::function<void
__cdecl(std::basic_string<char,std::char_traits<char>,std::allocator<char>
),std::allocator<void> >
::operator()(std::basic_string<char,std::char_traits<char>,std::allocator<char>
a1="fgfgf")  Line 344

// native alert() does it's job, and sends the text up: to the scripting engine
// this appendMessage() simply creates an event, by calling
//ScriptingEngine::appendMessageEvent() which is binded (listened for)
by another class,

// which never gets the event
qtwengophone.exe!ScriptingEngine::appendMessage(const
std::basic_string<char,std::char_traits<char>,std::allocator<char> > &
msg="fgfgf")  Line 59 + 0x24 bytes C++

// this callback is an _javascript_ calling a native function alert,
binded upon JS alert()
// alert(std::string) should display the string in a console
qtwengophone.exe!JSBindings::alert(JSContext * cx=0x03df5008, JSObject
* obj=0x019fcf20, unsigned int argc=1, long * argv=0x03df601c, long *
rval=0x0334faf0)  Line 63 C++

// js32 is SpiderMonkey, an EcmaScript interpreter
JS32.dll!10011e16() 



-- 
Ovidiu CIULE
Arad, Romania
+40 357 809 157
_______________________________________________
Wengophone-devel mailing list

_______________________________________________
Wengophone-devel mailing list
[email protected]
http://dev.openwengo.com/mailman/listinfo/wengophone-devel

Reply via email to