28 Star 110 Fork 86

hinus/pythonvm

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
stringTable.cpp 1.77 KB
一键复制 编辑 原始数据 按行查看 历史
hinus 提交于 2018-10-08 20:03 +08:00 . Summary: str.join
#include "runtime/stringTable.hpp"
#include "object/hiString.hpp"
#include "memory/oopClosure.hpp"
StringTable* StringTable::instance = NULL;
StringTable* StringTable::get_instance() {
if (instance == NULL)
instance = new StringTable();
return instance;
}
StringTable::StringTable() {
next_str = new HiString("next");
mod_str = new HiString("__module__");
init_str = new HiString("__init__");
add_str = new HiString("__add__");
len_str = new HiString("__len__");
call_str = new HiString("__call__");
name_str = new HiString("__name__");
iter_str = new HiString("__iter__");
repr_str = new HiString("__repr__");
getitem_str = new HiString("__getitem__");
setitem_str = new HiString("__setitem__");
getattr_str = new HiString("__getattr__");
setattr_str = new HiString("__setattr__");
so_pre_str = new HiString("lib");
libdir_pre_str = new HiString("./lib/");
empty_str = new HiString("");
so_suf_str = new HiString(".so");
pyc_suf_str = new HiString(".pyc");
}
void StringTable::oops_do(OopClosure* f) {
f->do_oop((HiObject**)&next_str);
f->do_oop((HiObject**)&mod_str);
f->do_oop((HiObject**)&init_str);
f->do_oop((HiObject**)&add_str);
f->do_oop((HiObject**)&len_str);
f->do_oop((HiObject**)&call_str);
f->do_oop((HiObject**)&name_str);
f->do_oop((HiObject**)&iter_str);
f->do_oop((HiObject**)&repr_str);
f->do_oop((HiObject**)&getitem_str);
f->do_oop((HiObject**)&setitem_str);
f->do_oop((HiObject**)&setattr_str);
f->do_oop((HiObject**)&getattr_str);
f->do_oop((HiObject**)&empty_str);
f->do_oop((HiObject**)&so_suf_str);
f->do_oop((HiObject**)&pyc_suf_str);
f->do_oop((HiObject**)&libdir_pre_str);
f->do_oop((HiObject**)&so_pre_str);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/hinus/pythonvm.git
git@gitee.com:hinus/pythonvm.git
hinus
pythonvm
pythonvm
master

搜索帮助