Fetch the repository succeeded.
#include "cpps/cpps.h"
namespace cpps
{
void C::push(node *_o)
{
o = _o;
}
void C::push_stack(cpps_stack* stack)
{
_callstack->emplace_back(stack);
}
void C::pop_stack()
{
_callstack->pop_back();
}
std::vector<cpps_stack*>* C::getcallstack()
{
std::vector<cpps_stack*>* ret = _callstack;
return ret;
}
void C::setcallstack(std::vector<cpps_stack*>* ret)
{
if (ret == NULL) return;
_callstack = ret;
}
phmap::flat_hash_set<cpps_regvar*>* C::getbarrierlist()
{
phmap::flat_hash_set<cpps_regvar*>*ret = &barrierList;
return ret;
}
void C::setmoduledata(std::string modulename, cpps_module_data* data)
{
savemoduledatas[modulename] = data;
}
cpps_module_data* C::getmoduledata(std::string modulename)
{
return savemoduledatas[modulename];
}
CLASSVARSET* C::getgen0()
{
CLASSVARSET*ret = &gen0;
return ret;
}
CLASSVARSET* C::getgen1()
{
CLASSVARSET* ret = &gen1;
return ret;
}
void C::setgen0size(size_t s)
{
gen0size = s;
}
size_t C::getgen0size()
{
return gen0size;
}
void C::setgen1size(size_t s)
{
gen1size = s;
}
size_t C::getgen1size()
{
return gen1size;
}
void C::setlastgensize(size_t s)
{
lastgensize = s;
}
size_t C::getlastgensize()
{
return lastgensize;
}
C::C(int argc, char** argv)
{
disabled_non_def_var = false;
o = NULL;
_G = NULL;
_emptynode = CPPSNEW(node)();
_emptynode->filename = "None";
_emptynode->line = 1;
curnode = _emptynode;
gen0size = 0;
gen1size = 0;
lastgensize = 0;
func = NULL;
debug = false;
buildoffset = false;
application_argc = argc;
application_argv = argv;
ordinator = NULL;
isterminate = false;
isloadbase = false;
_callstack = CPPSNEW( std::vector<cpps_stack*>)();
_parentCState = NULL;
_lambdanum = 0;
cpps_jit_compile = NULL;
cpps_jit_run = NULL;
}
C::~C()
{
if(_callstack) CPPSDELETE(_callstack);
_callstack = NULL;
if (_emptynode) CPPSDELETE(_emptynode);
_emptynode = NULL;
}
void C::debugopen()
{
debug = true;
}
void C::debugclose()
{
debug = false;
}
void C::resume()
{
if (_callstack == NULL) return;
_callstack->clear();
}
void C::clone(C* clone_c2)
{
C* clone_c = clone_c2->_parentCState ? clone_c2->_parentCState : clone_c2;
if (clone_c == this) return;
_G->clone(clone_c->_G);
_parentCState = clone_c;
_gen0lock = new cpps_lock();
_classvarlock = clone_c->_classvarlock;
isloadbase = true;
leftsymbolmap = clone_c->leftsymbolmap;
symbolmap = clone_c->symbolmap;
for (int i = 0; i < MAXSYMBOLPRIO; i++) {
symbolleftasso[i] = clone_c->symbolleftasso[i];
}
savemoduledatas = clone_c->savemoduledatas;
cpps_jit_compile = clone_c->cpps_jit_compile;
cpps_jit_run = clone_c->cpps_jit_run;
}
void C::set_cxo_handle_func(cpps_cxo_func __func)
{
_cxo_func = __func;
}
cpps_value * cpps_stack::create_cpps_value()
{
return CPPSNEW( cpps_value)();
}
cpps_stack::cpps_stack()
{
memset(f, 0, 255);
memset(func, 0, 64);
l = 0;
}
void cpps_stack::init(const char* pf, int32 pl, const char* pfunc)
{
strcpy(f, pf);
strcpy(func, pfunc);
l = pl;
}
cpps_std_vector* cpps_stack::createparams()
{
return CPPSNEW( cpps_std_vector)();
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。