int sInst::runcode(const char *code, bool showerr, bool canfree) { if (m_vm) { m_pc.Set(""); eel_preprocess_strings(this,m_pc,code); NSEEL_CODEHANDLE code = NSEEL_code_compile_ex(m_vm,m_pc.Get(),1,canfree ? 0 : NSEEL_CODE_COMPILE_FLAG_COMMONFUNCS); char *err; if (!code && (err=NSEEL_code_getcodeerror(m_vm))) { if (NSEEL_code_geterror_flag(m_vm)&1) return 1; if (showerr) fprintf(stderr,"NSEEL_code_compile: %s\n",err); return -1; } else { if (code) { NSEEL_VM_enumallvars(m_vm,varEnumProc, this); NSEEL_code_execute(code); if (canfree) NSEEL_code_free(code); else m_code_freelist.Add((void*)code); } return 0; } } return -1; }
void texmgr::FreeCode(int iSlot) { // free the compiled expressions if (m_tex[iSlot].m_codehandle) { NSEEL_code_free(m_tex[iSlot].m_codehandle); m_tex[iSlot].m_codehandle = NULL; } }
IPlugEEL::~IPlugEEL() { NSEEL_code_free(codehandle); NSEEL_VM_free(vm); }