Sign in to follow this  

RegisterScriptArray fails

This topic is 1319 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

i already posted on this on stackoverflow, but didn't get any reply there.

 

Here my original text:

i am trying to get an angelscript test running, however, calling RegisterScriptArray() fails

System function (1, 39) : ERR : Expected '<end of file>'
(0, 0) : ERR : Failed in call to function 'RegisterObjectBehaviour' with 'array' and 'array<T>@ f(int&in type, int&in list) {repeat T}' (Code: -10)

the code is:

engine = asCreateScriptEngine(ANGELSCRIPT_VERSION);

// message callback
int r = engine->SetMessageCallback(asFUNCTION(as_messageCallback), 0, asCALL_CDECL); assert( r >= 0 );

RegisterStdString(engine);
RegisterScriptArray(engine, false);

r = engine->RegisterGlobalFunction("void print(const string &in)", asFUNCTION(as_print), asCALL_CDECL); assert( r >= 0 );

What should i do? If i comment out the call it works, but thats obviously not what i want to archieve as i want arrays

So yeah, maybe i get an answer here. Maybe its actually a bug, i don't know

Edited by Kilobyte22

Share this post


Link to post
Share on other sites

It would appear that you have a mismatching version of AngelScript and the add-on. 

 

What version of AngelScript are you using?

 

Remove any previous versions of angelscript that you have and do a fresh compilation of both the library and your application.

Share this post


Link to post
Share on other sites

i got myself the latest version from AUR (Arch Linux User Repository) which is 2.28.2-1, the plugins are self compiled, from 2.28.2. Compiling 2.28.2 core myself now, we'll see if that fixes it

 

EDIT:

 

So, now neither string registration nor array work. i get this error for string:

System function (1, 9) : ERR  : Expected '{'                                                                                                                                                   
System function (1, 9) : ERR  : Instead found '<end of file>'
 (0, 0) : ERR  : Failed in call to function 'RegisterObjectBehaviour' with 'string' and 'void f()' (Code: -10)
angelscript-standalone: scriptstdstring.cpp:553: void RegisterStdString_Native(asIScriptEngine*): Assertion `r >= 0' failed.

And this one for array:

 (0, 0) : ERR  : Failed in call to function 'RegisterObjectBehaviour' with 'array' and 'bool f(int&in, bool&out)' (Code: -7)
angelscript-standalone: scriptarray.cpp:254: void RegisterScriptArray_Native(asIScriptEngine*): Assertion `r >= 0' failed.
Edited by Kilobyte22

Share this post


Link to post
Share on other sites

The add-ons and the library are definitely not using the same values for the asEBehaviours enum. Either you have a different version of angelscript.h somewhere in the system that the add-ons include, or you haven't done a clean build of your code so that the linker is still using the old .o files.

 

 

I don't know who maintains the Arch Linux User Repository and I can't vouch for the quality (though I doubt there is in anything wrong with it). You may also try getting the latest SDK from the official site instead. Or if you will, get the latest WIP version from the SVN

 

I recommend the latest WIP, since it is what I'll release in a few days. I'm just updating the documentation with the new enhancements.

Share this post


Link to post
Share on other sites

sure, gonna try WIP, will tell my results

 

EDIT: Umm.... how to compile addons again? don't find it on the documentation page anymore

Edited by Kilobyte22

Share this post


Link to post
Share on other sites
Sign in to follow this