void sqlang_sr_destroy(void) { if(_sr_J_env.J!=NULL) { sq_close(_sr_J_env.J); _sr_J_env.J = NULL; } if(_sr_J_env.JJ!=NULL) { sq_close(_sr_J_env.JJ); _sr_J_env.JJ = NULL; } memset(&_sr_J_env, 0, sizeof(sr_sqlang_env_t)); }
static SQRESULT sq_slave_vm_close(HSQUIRRELVM v) { GET_sq_slave_vm_INSTANCE(v, 1); sq_close(self); sq_setinstanceup(v, 1, 0); //next calls will fail with "vm is closed" return 0; }
int main(int argc, char* argv[]) { HSQUIRRELVM v; v = sq_open(1024); // creates a VM with initial stack size 1024 //REGISTRATION OF STDLIB //sq_pushroottable(v); //push the root table where the std function will be registered //sqstd_register_iolib(v); //registers a library // ... call here other stdlibs string,math etc... //sq_pop(v,1); //pops the root table //END REGISTRATION OF STDLIB sqstd_seterrorhandlers(v); //registers the default error handlers sq_setprintfunc(v, printfunc,errorfunc); //sets the print function sq_pushroottable(v); //push the root table(were the globals of the script will be stored) if(SQ_SUCCEEDED(sqstd_dofile(v, _SC("test.nut"), SQFalse, SQTrue))) // also prints syntax errors if any { call_foo(v,1,2.5,_SC("teststring")); } sq_pop(v,1); //pops the root table sq_close(v); return 0; }
void SqEnv::reset() { AutoLock a(&_m); sq_pop(*_vm, 1); sq_close(*this->_vm); this->_init(); }
SqEnv::~SqEnv() { AutoLock a(&_m); Sqrat::DefaultVM::Set(*_vm); sq_close(*_vm); *_vm = 0; }
static void Shutdown (void) { Shutdown_RegExp(); Shutdown_Hash(); Shutdown_Util(); Shutdown_Math(); Shutdown_File(); Shutdown_IO(); Shutdown_Base(); _RPT0(_CRT_WARN, "--- Libraries deinitialized\n"); if (sqvm) sq_close(sqvm); sqvm = NULL; _RPT0(_CRT_WARN, "--- Squirrel deinitialized\n"); #if defined(_MSC_VER) && defined(_DEBUG) // Wait for any key SetConsoleTitle("Squirrel Shell " SHELL_VERSION_STR " (" SHELL_CPUARCH ") - Finished"); while (_kbhit()) _getch(); _getch(); #endif }
int main(int argc, char** argv) { HSQUIRRELVM vm=sq_open(SQUIRREL_STACK_SIZE); sq_setprintfunc(vm, squirrel_print_function, NULL); register_global_func(vm,ShowVersion,"ShowVersion"); register_global_func(vm,Multiply,"Multiply"); if(SQ_FAILED(sqstd_dofile(vm,"test.nut",SQFalse,SQFalse))) return 1; /*const SQChar *program = "::print(\"Hello World!\\n\");"; if (SQ_FAILED(sq_compilebuffer(vm, program, sizeof(SQChar) * strlen(program), "program", SQFalse))) { return 1; }*/ sq_pushroottable(vm); if (SQ_FAILED(sq_call(vm, 1, SQFalse, SQFalse))) { //squirrel_print_last_error(sqvm); return 1; } sq_close(vm); return 0; }
void CSquirrel::Unload() { // Pop the root table from the stack sq_pop(m_pVM, 1); // Close the squirrel VM sq_close(m_pVM); m_pVM = NULL; }
int main(int argc, char *argv[]) { setbuf(stdout, NULL); if (argc < 2) { scprintf(_SC("SQDBG error : no file specified")); return -1; } HSQUIRRELVM v = sq_open(1024); sqstd_seterrorhandlers(v); //!! INITIALIZES THE DEBUGGER ON THE TCP PORT 1234 //!! ENABLES AUTOUPDATE HSQREMOTEDBG rdbg = sq_rdbg_init(v, 1234, SQTrue); if (rdbg) { //!! ENABLES DEBUG INFO GENERATION(for the compiler) sq_enabledebuginfo(v, SQTrue); sq_setprintfunc(v, printfunc, errorfunc); //!! SUSPENDS THE APP UNTIL THE DEBUGGER CLIENT CONNECTS if (SQ_SUCCEEDED(sq_rdbg_waitforconnections(rdbg))) { scprintf(_SC("connected\n")); const SQChar *fname = NULL; #ifdef _UNICODE SQChar sTemp[256]; mbstowcs(sTemp,argv[1],(int)strlen(argv[1])+1); fname=sTemp; #else fname = argv[1]; #endif //!!REGISTERS STANDARDS LIBS sq_pushroottable(v); sqstd_register_bloblib(v); sqstd_register_iolib(v); //!!EXECUTE A SCTIPT if (SQ_FAILED(sqstd_dofile(v, fname, SQFalse, SQTrue))) { PrintError(v); #if defined(_WIN32) || defined(_WIN64) _getch(); #else getch(); #endif } } //!! CLEANUP sq_rdbg_shutdown(rdbg); } else { PrintError(v); } sq_close(v); return 0; }
/*---------------------------------------------------------------------------*/ int WebClose(UpnpWebFileHandle FileHandle) { if (!FileHandle) return -1; sq_close(FileHandle); LOG_DEBUG("webserver close", NULL); return UPNP_E_SUCCESS; }
ScriptVM::~ScriptVM() { sq_pop(v,1); //pops the root table sq_close(v); /*if(luaVM != NULL) { lua_close(luaVM); }*/ }
CResourceScript::~CResourceScript ( ) { // Call sq_pop sq_pop(m_pVM, 1); // Free vm sq_close(m_pVM); delete m_pVM; }
CSquirrelVM::~CSquirrelVM() { // Pop the root table from the stack sq_pop(m_pVM, 1); // Close the squirrel VM sq_close(m_pVM); m_pVM = NULL; }
CSquirrel::~CSquirrel() { if(m_pVM) { // Pop the root table from the stack sq_pop(m_pVM, 1); // Close the squirrel VM sq_close(m_pVM); } }
/// vm 終了 void done() { // クラス参照を解放 SQClassType<Thread>::done(vm); SQClassType<Object>::done(vm); // ルートテーブルをクリア sq_pushroottable(vm); sq_clear(vm,-1); sq_pop(vm,1); sq_close(vm); }
int sqrl_main(int argc, char* argv[]) { HSQUIRRELVM v; SQInteger retval = 0; const SQChar *filename=NULL; #if defined(_MSC_VER) && defined(_DEBUG) _CrtSetAllocHook(MemAllocHook); #endif v=sq_open(1024); sq_setprintfunc(v,printfunc,errorfunc); sq_pushroottable(v); sqstd_register_bloblib(v); sqstd_register_iolib(v); sqstd_register_mathlib(v); /* * TODO: system and string library should be implemented for nuttx * they need 'longjmp' and 'setjmp'. */ //sqstd_register_stringlib(v); //sqstd_register_systemlib(v); //aux library //sets error handlers sqstd_seterrorhandlers(v); //gets arguments switch(getargs(v,argc,argv,&retval)) { case _INTERACTIVE: Interactive(v); break; case _DONE: case _ERROR: default: break; } sq_close(v); #if defined(_MSC_VER) && defined(_DEBUG) _getch(); _CrtMemDumpAllObjectsSince( NULL ); #endif return retval; return 0; }
int main() { HSQUIRRELVM vm = sq_open(1024); sq_setprintfunc(vm, PrintFunc, PrintFunc); sq_setcompilererrorhandler(vm, CompileErrorHandler); //FILE* fp = fopen("../../../test/test.nut", "r"); //if(!fp) //{ // goto _CLEANUP; //} //fseek(fp, 0, SEEK_END); //long len = ftell(fp); //fseek(fp, 0, SEEK_SET); //char* buf = new char[len + 1]; //memset(buf, 0, len + 1); //fread(buf, 1, len, fp); //fclose(fp); //SQChar* source = new SQChar[len + 2]; //memset(source, 0, sizeof(SQChar) * (len + 2)); //mbstowcs(source, buf, len + 1); //delete[] buf; //if(SQ_FAILED(sq_compilebuffer(vm, source, _tcslen(source), _SC("test.nut"), SQTrue))) //{ // delete[] source; // goto _CLEANUP; //} //delete[] source; SQChar* apSrc[] = { _SC("../../../test/test.nut"), }; sq_compilestatic(vm, OpenSrcFunc, CloseSrcFunc, 1, apSrc, _SC("testproj"), SQTrue); sq_pushroottable(vm); if(SQ_SUCCEEDED(sq_call(vm, 1, SQFalse, SQTrue))) { printf("Run script succeeded."); } _CLEANUP: sq_close(vm); system("pause"); return 0; }
int main(int argc, char* argv[]) { HSQUIRRELVM v; const SQChar *filename=NULL; #if defined(_MSC_VER) && defined(_DEBUG) _CrtSetAllocHook(MemAllocHook); #endif v=sq_open(1024); sq_setprintfunc(v,printfunc); sq_pushroottable(v); sqstd_register_bloblib(v); sqstd_register_iolib(v); sqstd_register_systemlib(v); sqstd_register_mathlib(v); sqstd_register_stringlib(v); //aux library //sets error handlers sqstd_seterrorhandlers(v); //gets arguments switch(getargs(v,argc,argv)) { case _INTERACTIVE: Interactive(v); break; case _DONE: default: break; } sq_close(v); #if defined(_MSC_VER) && defined(_DEBUG) _getch(); _CrtMemDumpAllObjectsSince( NULL ); #endif return 0; }
Context::~Context() { sq_close(vm_); }
SquirrelScriptContext::~SquirrelScriptContext() { sq_close(m_vm); }
void Sq_Close(HSQUIRRELVM v) { // recipe for disaster: Sq_Close and sq_close with different behavior sq_pop(v,1); sq_close(v); }
int main(int argc, char *argv[]) { if(argc < 2){ scprintf(_SC("SQDBG error : no file specified")); return -1; } // RVF + int debuggerPort = 0; for (int i = 1; i < argc; i++) { const char* arg = argv[i]; if (!strncmp(arg, "-d", 2)) debuggerPort = std::atoi(arg + 2); } if (!debuggerPort) { scprintf(_SC("SQDBG error : Debugger port not specified. Use the -d<PORT> parameter")); return EXIT_FAILURE; } // RVF - HSQUIRRELVM v = sq_open(1024); sqstd_seterrorhandlers(v); //!! INITIALIZES THE DEBUGGER ON THE TCP PORT 1234 //!! ENABLES AUTOUPDATE HSQREMOTEDBG rdbg = sq_rdbg_init(v,debuggerPort,SQTrue); if(rdbg) { //!! ENABLES DEBUG INFO GENERATION(for the compiler) sq_enabledebuginfo(v,SQTrue); sq_setprintfunc(v,printfunc,errorfunc); //!! SUSPENDS THE APP UNTIL THE DEBUGGER CLIENT CONNECTS if(SQ_SUCCEEDED(sq_rdbg_waitforconnections(rdbg))) { scprintf(_SC("connected\n")); const SQChar *fname=NULL; #ifdef _UNICODE SQChar sTemp[256]; mbstowcs(sTemp,argv[argc-1],(int)strlen(argv[1])+1); fname=sTemp; #else fname=argv[argc-1]; #endif //!!REGISTERS STANDARDS LIBS sq_pushroottable(v); sqstd_register_bloblib(v); sqstd_register_iolib(v); sqstd_register_systemlib(v); sqstd_register_mathlib(v); sqstd_register_stringlib(v); //!!EXECUTE A SCTIPT if(SQ_FAILED(sqstd_dofile(v,fname,SQFalse,SQTrue))) { PrintError(v); _getch(); } } //!! CLEANUP sq_rdbg_shutdown(rdbg); } else { PrintError(v); } sq_close(v); return 0; }
static SQRESULT sq_slave_vm_release_hook(SQUserPointer p, SQInteger size, HSQUIRRELVM v) { HSQUIRRELVM self = (HSQUIRRELVM)p; if(self) sq_close(self); return 0; }
void SquirrelVM::Shutdown() { HSQUIRRELVM v = _VM; _VM = NULL; sq_close(v); }
void MTR_ScriptsQuit(void) { sq_pop(mtrVm, 1); //pops the root table sq_close(mtrVm); MTR_LogWrite("Squirrel VM closed", 0, MTR_LMT_INFO); }
SqWrap::~SqWrap() { sq_close(vm); }
SquirrelVM::~SquirrelVM() { delete _root; sq_close(_VM); _VM = NULL; }