コード例 #1
0
ファイル: app_sqlang_api.c プロジェクト: linuxmaniac/kamailio
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));
}
コード例 #2
0
ファイル: sq_slave_vm.cpp プロジェクト: The-Mad-Pirate/squilu
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;
}
コード例 #3
0
ファイル: minimal.c プロジェクト: EgoIncarnate/Infinity
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; 
} 
コード例 #4
0
ファイル: sqwrap.cpp プロジェクト: comarius/pizu
void SqEnv::reset()
{
    AutoLock a(&_m);
    sq_pop(*_vm, 1);
	sq_close(*this->_vm);
	this->_init();
}
コード例 #5
0
ファイル: sqwrap.cpp プロジェクト: comarius/pizu
SqEnv::~SqEnv()
{
    AutoLock a(&_m);
    Sqrat::DefaultVM::Set(*_vm);
    sq_close(*_vm);
    *_vm = 0;
}
コード例 #6
0
ファイル: main.cpp プロジェクト: ruifig/nutcracker
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
}
コード例 #7
0
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;
}
コード例 #8
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;
}
コード例 #9
0
ファイル: main.cpp プロジェクト: neochief/squirrel-lang-sdk
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;
}
コード例 #10
0
ファイル: webserver.c プロジェクト: philippe44/LMS-to-Cast
/*---------------------------------------------------------------------------*/
int WebClose(UpnpWebFileHandle FileHandle)
{
	if (!FileHandle) return -1;

	sq_close(FileHandle);

	LOG_DEBUG("webserver close", NULL);
	return UPNP_E_SUCCESS;
}
コード例 #11
0
ファイル: ScriptVM.cpp プロジェクト: zerotri/Maxwell_Game_old
ScriptVM::~ScriptVM()
{
	sq_pop(v,1); //pops the root table
	sq_close(v);
	/*if(luaVM != NULL)
	{
		lua_close(luaVM);
	}*/
}
コード例 #12
0
ファイル: CResourceScript.cpp プロジェクト: LeeHM/etmp
CResourceScript::~CResourceScript ( )
{
	// Call sq_pop
	sq_pop(m_pVM, 1);

	// Free vm
	sq_close(m_pVM);
	delete m_pVM;
}
コード例 #13
0
ファイル: CSquirrelVM.cpp プロジェクト: RAG20/IV-Network
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;
}
コード例 #14
0
ファイル: CSquirrel.cpp プロジェクト: B2O/IV-Network
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);
	}
}
コード例 #15
0
ファイル: sqfunc.cpp プロジェクト: Ruw-Van/krkrz
/// 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);
}
コード例 #16
0
ファイル: sq.cpp プロジェクト: apaikan/myCub
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;
}
コード例 #17
0
ファイル: main.cpp プロジェクト: Samana/Squirt
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;
}
コード例 #18
0
ファイル: sq.c プロジェクト: BackupTheBerlios/windstille-svn
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;
}
コード例 #19
0
ファイル: Context.cpp プロジェクト: nickshalimov/sqrew
Context::~Context()
{
    sq_close(vm_);
}
コード例 #20
0
SquirrelScriptContext::~SquirrelScriptContext()
{
	sq_close(m_vm);
}
コード例 #21
0
ファイル: squirrel.c プロジェクト: NovaSquirrel/PrincessEdit
void Sq_Close(HSQUIRRELVM v) {
// recipe for disaster: Sq_Close and sq_close with different behavior
  sq_pop(v,1);
  sq_close(v); 
}
コード例 #22
0
ファイル: main.cpp プロジェクト: ruifig/nutcracker
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;
}
コード例 #23
0
ファイル: sq_slave_vm.cpp プロジェクト: The-Mad-Pirate/squilu
static SQRESULT sq_slave_vm_release_hook(SQUserPointer p, SQInteger size, HSQUIRRELVM v)
{
    HSQUIRRELVM self = (HSQUIRRELVM)p;
    if(self) sq_close(self);
    return 0;
}
コード例 #24
0
ファイル: SquirrelVM.cpp プロジェクト: eriser/kdguigl
void SquirrelVM::Shutdown()
{
	HSQUIRRELVM v = _VM;
	_VM = NULL;
	sq_close(v);
}
コード例 #25
0
ファイル: script.c プロジェクト: edomin/Marathoner
void MTR_ScriptsQuit(void)
{
    sq_pop(mtrVm, 1); //pops the root table
    sq_close(mtrVm);
    MTR_LogWrite("Squirrel VM closed", 0, MTR_LMT_INFO);
}
コード例 #26
0
ファイル: SqWrap.cpp プロジェクト: exhu/sqwrap
SqWrap::~SqWrap() {
    sq_close(vm);
}
コード例 #27
0
ファイル: SquirrelVM.cpp プロジェクト: eriser/kdguigl
SquirrelVM::~SquirrelVM()
{
    delete _root;
    sq_close(_VM);
    _VM = NULL;
}