mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-25 05:50:17 +00:00
some fix
This commit is contained in:
parent
9a1a7f92b7
commit
8f114ad816
@ -641,8 +641,11 @@ __NEXT_STEP:
|
|||||||
if(py_bool(POPX())) DISPATCH_JUMP(byte.arg)
|
if(py_bool(POPX())) DISPATCH_JUMP(byte.arg)
|
||||||
DISPATCH()
|
DISPATCH()
|
||||||
case OP_JUMP_IF_TRUE_OR_POP:
|
case OP_JUMP_IF_TRUE_OR_POP:
|
||||||
if(py_bool(POPX())) DISPATCH_JUMP(byte.arg)
|
if(py_bool(TOP())){
|
||||||
DISPATCH()
|
DISPATCH_JUMP(byte.arg)
|
||||||
|
}else{
|
||||||
|
DISPATCH()
|
||||||
|
}
|
||||||
case OP_JUMP_IF_FALSE_OR_POP:
|
case OP_JUMP_IF_FALSE_OR_POP:
|
||||||
if(!py_bool(POPX())) DISPATCH_JUMP(byte.arg)
|
if(!py_bool(POPX())) DISPATCH_JUMP(byte.arg)
|
||||||
DISPATCH()
|
DISPATCH()
|
||||||
|
|||||||
10
src/vm.cpp
10
src/vm.cpp
@ -778,12 +778,12 @@ void VM::__log_s_data(const char* title) {
|
|||||||
SStream ss;
|
SStream ss;
|
||||||
if(title) ss << title << " | ";
|
if(title) ss << title << " | ";
|
||||||
std::map<PyVar*, int> sp_bases;
|
std::map<PyVar*, int> sp_bases;
|
||||||
for(Frame& f: callstack.data()){
|
callstack.apply([&](Frame& f){
|
||||||
if(f._sp_base == nullptr) PK_FATAL_ERROR();
|
if(f._sp_base == nullptr) PK_FATAL_ERROR();
|
||||||
sp_bases[f._sp_base] += 1;
|
sp_bases[f._sp_base] += 1;
|
||||||
}
|
});
|
||||||
Frame* frame = &callstack.top();
|
Frame* frame = &callstack.top();
|
||||||
int line = frame->co->lines[frame->_ip];
|
int line = frame->curr_lineno();
|
||||||
ss << frame->co->name << ":" << line << " [";
|
ss << frame->co->name << ":" << line << " [";
|
||||||
for(PyVar* p=s_data.begin(); p!=s_data.end(); p++){
|
for(PyVar* p=s_data.begin(); p!=s_data.end(); p++){
|
||||||
ss << std::string(sp_bases[p], '|');
|
ss << std::string(sp_bases[p], '|');
|
||||||
@ -809,10 +809,10 @@ void VM::__log_s_data(const char* title) {
|
|||||||
} else if(is_type(obj, tp_tuple)){
|
} else if(is_type(obj, tp_tuple)){
|
||||||
auto& t = CAST(Tuple&, obj);
|
auto& t = CAST(Tuple&, obj);
|
||||||
ss << "tuple(size=" << t.size() << ")";
|
ss << "tuple(size=" << t.size() << ")";
|
||||||
} else ss << "(" << _type_name(this, obj->type) << ")";
|
} else ss << "(" << _type_name(this, obj.type) << ")";
|
||||||
ss << ", ";
|
ss << ", ";
|
||||||
}
|
}
|
||||||
std::string output = ss.str();
|
std::string output = ss.str().str();
|
||||||
if(!s_data.empty()) {
|
if(!s_data.empty()) {
|
||||||
output.pop_back(); output.pop_back();
|
output.pop_back(); output.pop_back();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user